我试图用RSA公钥加密JSON数据,用私钥解密, 我的代码
from Crypto.Cipher import PKCS1_OAEP
from Crypto.PublicKey import RSA
import binascii
final_data = { 'custom_folder': {'check': 'test'} }
data = json.dumps(final_data).encode('utf-8') # converted into bytes
keys = RSA.generate(2048)
pub_key = keys.publickey().exportKey('PEM') # generates public key
pri_key = keys.exportKey('PEM') # generate private key
encryptor = PKCS1_OAEP.new(key=keys) # using keys variable
encrypted = encryptor.encrypt(data)
print("Encrypted:", binascii.hexlify(encrypted))
当使用变量keys
完成时,它会像这样加密数据
Encrypted: b'46bdca64f486....'
但是我想用我的公钥来加密和发送数据,而在另一端,当我用pub_key
替换keys
时,只使用私钥进行解密,生成这个错误
encryptor = PKCS1_OAEP.new(key=pub_key) # replaced keys with public key
# Error geenrated
Traceback (most recent call last):
encrypted = encryptor.encrypt(data)
modBits = Crypto.Util.number.size(self._key.n)
AttributeError: 'bytes' object has no attribute 'n'
如何仅使用公钥进行加密
目前没有回答
相关问题 更多 >
编程相关推荐