Python md5 different than PHP7 md5
我需要从PHP用Python编写一个MD5散列,并且一直在尝试让日期给出正确的MD5散列。两种语言打印的日期完全相同,但如果对该日期进行哈希处理,则哈希值不同。
**MD5哈希需要与原始PHP哈希匹配(需要对python而不是php进行更改)
Md5.Py
1 2 3 4 5 6 7 8 9 10 11
| import hashlib , datetime
timestamp = datetime .datetime .now () - datetime .timedelta (hours =6)
timestamp1 = timestamp .strftime("%Y-%m-%d %H:%M:%S")
print(timestamp1 )
md5_digest = hashlib .md5(timestamp1 .encode ()).hexdigest ()
print (md5_digest ) |
md5.php语言
1 2 3 4 5 6 7 8 9 10 11 12
| <?php
$strDatetime = date("Y-m-d H:i:s");
function get_md5_hash ($strDatetime) {
return md5(strtotime($strDatetime));
}
print("$strDatetime");
print get_md5_hash ("$strDatetime","$strAuthWindow","$strSalt");
?> |
号
这就是我得到的结果:
2018年4月18日13:24:0136BAE8F24429309F147F3BD6D8A1E0C9
2018年4月18日13:24:010EAB3B000E3D831A57F9E7B77F136900
- 您确定日期时间是1000%相同吗?考虑用硬编码的datetime值再次测试这一点。
- 我已经尝试过了,但后来有了一个巨大的滚雪球效应,导致将日期时间转换为字符串。
- 这是我的一个例子:pastebin.com/fuatg0ba
在python中,您将散列时间戳字符串。在PHP中,您调用strtotime()并将字符串转换为整数unix时间戳。取消那个电话。
- 谢谢你的回复。我忘了说清楚我需要python代码来匹配php散列,而不是相反。