python - 如何将密文打印为十六进制字符串?

标签 python pycrypto

我使用 PyCrypto 模块为消息生成密文。

>>> a=AES.new("1234567890123456")
>>> m='aaaabbbbccccdddd'
>>> a.encrypt(m)
'H\xe7\n@\xe0\x13\xe0M\xc32\xce\x16@\xb2B\xd0'

我希望输出类似于 hashlib

的输出
>>> from hashlib import sha1
>>> sha1(m).hexdigest()
'68b69b51da162fcf8eee65641ee867f02cfc9c59'

也就是说,我需要一个干净的字符串,而不是带有 \x 等十六进制标记的字符串。

PyCrypto 中有什么方法可以实现这一点吗?

如果是,如何进行加解密?

如果不是,如何将字符串转换成我需要的字符串?

最佳答案

使用 binascii.hexlify (或 binascii.b2a_hex ):

>>> from Crypto.Cipher import AES
>>> a = AES.new("1234567890123456")
>>> m = 'aaaabbbbccccdddd'
>>> a.encrypt(m)
'H\xe7\n@\xe0\x13\xe0M\xc32\xce\x16@\xb2B\xd0'

>>> import binascii
>>> binascii.hexlify(a.encrypt(m))
'48e70a40e013e04dc332ce1640b242d0'

关于python - 如何将密文打印为十六进制字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22004405/

相关文章:

python - 重置Series索引而不转为DataFrame

python - 如何在 django Rest 框架中发出具有数组属性的对象的 POST 请求

python - 打开文本文件作为 textblob 的输入

python - Python 中的 MATLAB 定点函数 "fi"等效项

python - 在 Scientific Linux 上激活 Anaconda 环境

javascript - Javascript 和 Python 之间的 RSA 通信

python - 如何将 ElGamal key 导出到文本文件?

.net - .NET 中的 RSA 加密,python 中的解密

python - PyCrypto 导出/导入签名

python - Paramiko 没有名为 pycrypto 的模块