RSA解密返回额外数据

时间:2015-04-17 19:30:30

标签: python encryption cryptography openssl

我可以解密通过openssl命令行工具加密的一些数据,但是一些' 数据会与原始数据一起返回。 我已经创建了这样的加密文件:

$ echo这是> file.txt

$ openssl rsautl -encrypt -pubin -inkey public.pem -in file.txt -out encrypted.txt

我可以通过以下方式访问原始数据:

from Crypto.PublicKey import RSA
key = open('/tmp/.private.key').read()
rsakey = RSA.importKey(key, 'MyPassphrase')
data = open('/tmp/encrypted.txt', 'rb').read()
original = rsakey.decrypt(data)

但是返回了一些额外的数据,输出是这样的:

  

\ x02h \ x83 \ xcfx \ x84,\ xb1 \ xa6 [...] \ xcf5 \ x9f \ xbbG \ xf1 \ x14 \ xd0 \ x8d \ x1f \ xfe \ x9c4 \ xbb \ x1aB \ xfa \ xc3b \ xc2 \ xe0K \ x85 \ xb5 \ x10y \ xe1 \ x8e \ x00 这是\ n

我可以避免在解密数据之前收到这些原始数据吗?

Obs。:密钥是使用openssl工具

创建的

韩国社交协会

1 个答案:

答案 0 :(得分:3)

你正在获得PKCS#1 v1.5填充明文。您需要先删除PKCS#1 v1.5填充。目前,您正在执行教科书(或#34;原始")RSA解密,这只是模幂运算。请尝试使用支持PKCS#1 v1.5的课程,例如this one