一个关于rsa的疑问
  • 板块学术版
  • 楼主u822844
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/1/30 15:47
  • 上次更新2023/10/24 02:33:03
查看原帖
一个关于rsa的疑问
822844
u822844楼主2023/1/30 15:47

我想要实现使用私钥加密数据,并加上数字签名,然后用公钥解密并验证数字签名,可是在公钥解密时就出错了 这是片段代码:

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'
2023/1/30 15:47
加载中...