【发布时间】:2015-06-24 19:37:06
【问题描述】:
我可以解密一些通过 openssl 命令行工具加密的数据,但是一些 'extra' 数据与原始数据一起返回。 我创建了一个这样的加密文件:
$ 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 工具创建的
Tks.
【问题讨论】:
-
你是如何输出
original的? -
如果 ai print(original) 它显示一些二进制文件,最后是数据: -VM-'~C M-fM-\ ~?~LPOZw^O^S^[M --M-:^WM-4M-,&IM-i^W6 ^\~I )MB"^^_ ~_M-;G^TЍ^_M-~~\4M-;^ZBM-CbM-`K~ EM-5^Py his is it 我可以这样做来获取数据:rsakey.decrypt(data).split('\x00')[1] 但我不确定是否是正确的方法。跨度>
标签: python encryption cryptography openssl