我想要实现使用私钥加密数据,并加上数字签名,然后用公钥解密并验证数字签名,可是在公钥解密时就出错了 这是片段代码:
import rsa,base64
def encrypt(priv,text):
text=text.encode('UTF-8','ignore')
sign=base64.b64encode(rsa.sign(text,priv,"SHA-512")).decode()
r=base64.b64encode(rsa.encrypt(text,priv)).decode()
return ','.join((r,sign))
def decrypt(pub,text):
raw,sign=text.split(',')
raw=rsa.decrypt(base64.b64decode(raw.encode()),pub)
sign=base64.b64decode(sign)
tmp=rsa.verify(raw,sign,pub)
return res.decode('UTF-8','ignore'),tmp
错误是
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
decrypt(pub,st)
File "****", line 15, in decrypt
raw=rsa.decrypt(base64.b64decode(raw.encode()),pub)
File "D:\Program Files\Python311\Lib\site-packages\rsa\pkcs1.py", line 257, in decrypt
decrypted = priv_key.blinded_decrypt(encrypted)
AttributeError: 'PublicKey' object has no attribute 'blinded_decrypt'