从 php 到 django for pack('H32',$challenge) 和 md5("\0" . $word . $challenge)
我在 PHP 中依次调用了以下函数:
$chal = pack('H32',$challenge);
$word = md5("\0" . $word . $chal);
我想在 Django python 中执行相同的操作。 请问您有什么建议吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这种方法产生与原始 php 相同的结果(至少在 x86_64 上)。
Python 的 struct.pack() 方法没有 4 位大小(单个十六进制字符)的格式说明符,这似乎大致是 php 的 pack() 正在做的事情。因此,您必须将原始挑战字符串分解为最多 2 个字符的块,并将每个块解释为十六进制八位字节。
This approach produces the same result as the original php (at least on x86_64).
Python's struct.pack() method doesn't have a format specifier for a 4-bit size (single hex char), which seems to be roughly what php's pack() is doing. So you have to break the original challenge string up into to 2-char chunks and interpret each of those as a hex octet.
这可能会有所帮助 how-can-i-在 python 中解压二进制十六进制格式的数据
This might be of some help how-can-i-unpack-binary-hex-formatted-data-in-python