我总是无法解密RC4加密对象。我的密钥必须是此十六进制字符串的MD5-Hash:
00 00 00 01 3e 2a 5b 71 00 00 03 a0
我试图将十六进制字符串转换为ascii,然后再对其进行MD5哈希计算,但是看来我的密钥总是错误的。我认为这是有问题的,因为某些十六进制值是控制字符,但是如何计算此十六进制字符串的MD5的正确方法呢?我想到的是这样的:
from Crypto.Cipher import ARC4
from Crypto.Hash import MD5
def hexToAscii(hex_string):
return ''.join([chr(int(''.join(c), 16)) for c in zip(hex_string[0::2],hex_string[1::2])])
def main():
hex_string = '000000013e2a5b71000003a0'
# Key for Decryption
myKey = MD5.new(hexToAscii(hex_string)).hexdigest()
print 'hexToAscii(hex_string): %s' % hexToAscii(hex_string)
#open('myfile','wb').write(ARC4.new(hexToAscii(myKey)).decrypt(hexToAscii(CIPHER_TEXT)))
if __name__ == '__main__':
main()
该main
函数打印hexToAscii(hex_string)
而不是myKey
。
顺便说一句,您最好使用binascii.unhexlify
代替hexToAscii
。并且您可以使用hashlib
模块来计算md5。
>>> import hashlib
>>> import binascii
>>> hex_string = '000000013e2a5b71000003a0'
>>> hashlib.md5(binascii.unhexlify(hex_string)).hexdigest()
'6afebf522c531575e96d6814be816c7c'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句