pycrypto 使用 public 密钥加密私钥然后解密会导致垃圾

pycrypto encrypting private key with public key and then decrypting causes garbage

我试图建立安全的套接字连接,但是当我 创建私钥并从私钥创建公钥 并创建另一个私钥,然后用 pubkey 加密另一个私钥,然后用 first 解密 私钥给我垃圾

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'

您正在尝试加密太长的明文。具有 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'