gpt4 book ai didi

python - 如何使用十六进制值解密 RC4?

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:06 24 4
gpt4 key购买 nike

我在网上找到了几个用于 python 的 RC4 脚本。我使用了 http://www.joonis.de/en/code/rc4-algorithm 中的一个我对其进行了简化,仅用于解密使用 40 字节 key 使用 RC4 加密的文件。

testFile = 'input.xml'

key = 'Utood9dRzY2ugHYi9jl9ug2UNytIIxjk6Ptouaig'

out=file('output.xml','wb')

with open (testFile, "rb") as f:
data = f.read()
S = range(256)
j = 0

for i in range(256):
j = (j + S[i] + ord(key[i % len(key)])) % 256
S[i] , S[j] = S[j] , S[i]

for char in data:
i = 0
j = 0
i = ( i + 1 ) % 256
j = ( j + S[i] ) % 256
S[i] , S[j] = S[j] , S[i]
out.write(chr(ord(char) ^ S[(S[i] + S[j]) % 256]))

out.close()

我知道结果应该是什么,因为我已经成功解密了 input.xml 文件@http://rc4.online-domain-tools.com/但是当我通过脚本执行此操作时,输出是错误的。

我有点不知道问题出在哪里。如果有人能告诉我我做错了什么,我将不胜感激!

我想说我可能需要找出如何编写算法来处理十六进制值与整数,但似乎 python 已经有了十六进制。不过我不太确定。

链接到测试文件 = http://bayfiles.net/file/1kPgD/bVuyGw/input.xml

最佳答案

根据你粘贴的算法http://www.joonis.de/en/code/rc4-algorithm ,错误在这三行:

for char in data:
i = 0
j = 0

应该是:

i = 0
j = 0
for char in data:

关于python - 如何使用十六进制值解密 RC4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25926053/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com