from Crypto.PublicKey import RSA from Crypto.Signature import PKCS1_v1_5 from Crypto.Hash import SHA256 No module named 'Crypto'如何修改
时间: 2023-11-25 19:06:43 浏览: 180
这个问题可能是因为您没有安装 PyCrypto 库。PyCrypto 是一个用于加密和解密的Python库,它包含了许多加密算法和协议的实现,如AES、RSA、DSA、Diffie-Hellman、MD5、SHA等。
您可以尝试使用 PyCryptodome,这是一个 PyCrypto 库的替代品,可以通过以下命令进行安装:
```
pip install pycryptodome
```
然后,您可以使用以下代码进行 RSA 签名:
```
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
from Crypto.Hash import SHA256
# Generate a new private key
key = RSA.generate(2048)
# Create a SHA-256 hash object
hash_obj = SHA256.new(b'message to be signed')
# Create a signer object with the private key
signer = PKCS1_v1_5.new(key)
# Sign the hash object
signature = signer.sign(hash_obj)
# Verify the signature with the public key
public_key = key.publickey()
verifier = PKCS1_v1_5.new(public_key)
if verifier.verify(hash_obj, signature):
print("Signature is valid")
else:
print("Signature is invalid")
```
请注意,PyCryptodome 与 PyCrypto 的 API 有些不同,因此您需要在使用之前仔细查看文档。
阅读全文