Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将Pycryptodome密文转换为文本_Python_Encryption_Aes_Pycryptodome - Fatal编程技术网

Python 将Pycryptodome密文转换为文本

Python 将Pycryptodome密文转换为文本,python,encryption,aes,pycryptodome,Python,Encryption,Aes,Pycryptodome,当我打印密文变量时,它显示如下: b'\x8e\xde\x02\xa9\x8f8=\x8b\x87\x95\x19f\xcc……。 有什么方法可以让我把它以常规文本格式打印出来吗 我尝试了decode()(拉丁文)转换成“Ioß×Þ³>Û–ª……” utf-8生成错误(位置2中的0xa9:无效的起始字节) 一天结束后,我只想将类似于“I2XlmXarM6GrX1Qq4p8h3EgnA”的格式的密文与具有相同密钥、Iv、块模式、文本等的在线密文示例进行比较 希望所有这些都有意义。这个问题的答案是使

当我打印密文变量时,它显示如下:
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转换密文。
谢谢大家

密文是字节,其中很多可能无法打印。要比较输出,您可能需要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))