我试图用AES密码使用Python解密图像文件。我们已经给出了一个15字节的密钥,并且解密通过第一个字节运行的映像是我们的工作。Python - 连接字节到字符串切断字符串中的一些字节
什么,我至今是:
fifteenbytes = b'\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c'
for i in range(0, 256):
ipack = pack('B', i)
key = ipack + fifteenbytes
我希望我会越来越关键,就像这样:
\x00\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c
的迭代0 - 255,但我结束了:
b'\x00~\x15\x16(\xae\xd2\xa6\xab\xf7\x15\x88\t\xcfO<'
或有时退出字符和ASCII值等:
b'\t~\x15\x16(\xae\xd2\xa6\xab\xf7\x15\x88\t\xcfO<'
b'%~\x15\x16(\xae\xd2\xa6\xab\xf7\x15\x88\t\xcfO<'
有人能解释为什么会发生这种情况吗?
这是*正常*。在可能的情况下,Python字节对象将显示可打印的ASCII字符,而不是使用'\ xhh'转义序列。 *这里没有数据丢失*,你只是看着调试输出倾向于可读的文本。 –
例如,7E字节是ASCII标准中的'〜'字符,因为这是一个可打印字符,所以'repr()'输出使用'〜'而不是'\ x7E'。当您的数据主要是文本时,这非常有用,因为您不必手动将字节转换为ASCII。 –
@MartijnPieters,我明白了,谢谢!那么这是否意味着如果我使用7E或〜输入密钥给我的密码,它会给我相同的输出? –