将 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 来转换密文。 谢谢大家