使用XOR解密python3.6文件

2024-10-01 09:19:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一点代码,在加密文件方面非常有用,但是我不知道如何解密它。有人能给我解释一下如何谴责加密文件吗?谢谢。在

代码:

from itertools import cycle

def xore(data, key):
    return bytes(a ^ b for a, b in zip(data, cycle(key)))

with open('C:\\Users\\saeed\\Desktop\\k.png', 'rb') as encry, open('C:\\Users\\saeed\\Desktop\\k_enc.png', 'wb') as decry:
    decry.write(xore(encry.read(), b'anykey'))

Tags: 文件key代码fromdatapngasopen
2条回答

xor运算是它自己的逆运算。如果您用原始密钥再次“加密”它,它将恢复明文。在

要解密xor加密,只需使用相同的密钥再次加密:

>>> from io import BytesIO
>>> plain = b'This is a test'
>>> with BytesIO(plain) as f:
...     encrypted = xore(f.read(), b'anykey')
>>> print(encrypted)
b'5\x06\x10\x18E\x10\x12N\x18K\x11\x1c\x12\x1a'
>>> with BytesIO(encrypted) as f:
...     decrypted = xore(f.read(), b'anykey')
>>> print(decrypted)
b'This is a test'

相关问题 更多 >