我在PHP中一个接一个地调用了以下函数:
$chal = pack('H32',$challenge);
$word = md5("\0" . $word . $chal);
我想在Django python中做同样的事情。 请问您的任何提示吗?
答案 0 :(得分:1)
这种方法产生与原始php相同的结果(至少在x86_64上)。
import hashlib
import struct
cha1 = struct.pack('16B', *[int(c, 16) for c in (challenge[i:i+2]
for i in xrange(0, len(challenge), 2))])
word = hashlib.md5('\0%s%s' % (word, cha1)).hexdigest()
Python的struct.pack()方法没有4位大小的格式说明符(单个十六进制字符),这似乎与php的pack()大致相同。因此,您必须将原始挑战字符串分解为2个字符块,并将每个字符串解释为十六进制八位字节。
答案 1 :(得分:0)