将 Pycryptodome 密文转换为文本
Convert Pycryptodome ciphertext to Text
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
key = b'mysecretpassword' # 16 byte password
cipher = AES.new(key, AES.MODE_CBC)
plaintext = b'my super secret message to encrypt'
ciphertext = cipher.encrypt(pad(plaintext, AES.block_size))
当我打印密文 var 时,它显示如下:
b'\x8e\xde\x02\xa9\x8f8=\x8b\x87\x95\x19f\xcc........
有什么方法可以让我以常规文本格式打印出来吗?
我试过将 decode()(拉丁语)转换为 "Ioß×Þ³>Û–ª......."
utf-8 生成错误(位置 2 中的 0xa9:起始字节无效)
一天结束...我只是想要类似于"I2XlmXarM6GrX1Qq4p8h3EgnA..."
格式的密文与在线具有相同密钥,Iv,块模式,文本等的密文示例进行比较
希望一切都有意义。
问题的答案是用hex().upper()打印出来,格式和网上一样。
所以,在上面的例子中..我会把 print(ciphertext.hex().upper()) 作为文件的末尾,我会得到与其他在线相同的密文输出网站,以便我可以比较我的答案。
正如 Marc 上面指出的,我也可以使用 base64 来转换密文。
谢谢大家
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad
key = b'mysecretpassword' # 16 byte password
cipher = AES.new(key, AES.MODE_CBC)
plaintext = b'my super secret message to encrypt'
ciphertext = cipher.encrypt(pad(plaintext, AES.block_size))
当我打印密文 var 时,它显示如下:
b'\x8e\xde\x02\xa9\x8f8=\x8b\x87\x95\x19f\xcc........
有什么方法可以让我以常规文本格式打印出来吗?
我试过将 decode()(拉丁语)转换为 "Ioß×Þ³>Û–ª......."
utf-8 生成错误(位置 2 中的 0xa9:起始字节无效)
一天结束...我只是想要类似于"I2XlmXarM6GrX1Qq4p8h3EgnA..."
格式的密文与在线具有相同密钥,Iv,块模式,文本等的密文示例进行比较
希望一切都有意义。
问题的答案是用hex().upper()打印出来,格式和网上一样。
所以,在上面的例子中..我会把 print(ciphertext.hex().upper()) 作为文件的末尾,我会得到与其他在线相同的密文输出网站,以便我可以比较我的答案。
正如 Marc 上面指出的,我也可以使用 base64 来转换密文。 谢谢大家