pycrypto用公钥加密私钥,然后解密会产生垃圾。

问题描述 投票:1回答:1

我试图建立安全的套接字连接,但当我用私钥和私钥创建pubkey,再创建另一个私钥,然后用pubkey加密另一个私钥,再用第一个私钥解密时,我得到的是垃圾信息。

priv_key=RSA.generate(1024)
pub_key=priv_key.publickey()
another_priv_key=RSA.generate(1024)
priv_key.decrypt(pub_key.encrypt(another_priv_key.exportKey('PEM'),32))

output:b')O\xa5\xf9\xa5k%z\x10S.\x13\x06@\x83i\x1eI\xc6R\x1a\xa5}{h\x9aW0R\t\xa9\xf1\xdb\xe3\xdc\x1b\xd0\xe54\xb1\xf0^\x93 \xb6\x93\x16\xed\x98d8\xec6\xe2B\xde\x87(\xf7\xce\x9a)\x99ZR\xae$T\x1b\x19<\x12e\xfc\xd4\x92\xf3\x82l\x81ed,\xf4{CH\xe0\xd2\xdb\x0b#\xde9: ?\xea\x99\xe9\xd8\xe6\xca\xadFs\xa6\xc6\xc9x#\x96h\xf0\x83\x7f\xd25\xa4)Iv\xa6]\x15%5\x96'
python encryption rsa pycrypto
1个回答
1
投票

你想加密的明文太长了。用1024位模数的RSA应该可以处理128个字符的字符串,但是你的ASCII编码的私钥可能会包含接近1000个字符。

如果你愿意的话,你可以将密钥分片加密。

>>> priv_key.decrypt(pub_key.encrypt(another_priv_key.exportKey('PEM')[:128],32))
'-----BEGIN RSA PRIVATE KEY-----\nMIICXQIBAAKBgQCgoIPQspwO6DdHc9nGN6r9+qlMpFP+0PCik4QjbRzktX2U98sy\n2hZKXTjEj02+/bhJGL8dP63JDJQBWNL'
© www.soinside.com 2019 - 2024. All rights reserved.