【问题标题】:Python md5 different than PHP7 md5 [duplicate]Python md5不同于PHP7 md5 [重复]
【发布时间】:2018-04-18 17:32:10
【问题描述】:

我需要从 php 在 python 中编写一个 md5 哈希,并且一直在尝试让日期给出正确的 md5 哈希。两种语言都打印完全相同的日期,但如果对该日期进行哈希处理,则哈希值不同。

** md5 hash需要匹配原始php hash(需要修改python而不是php)

md5.py

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

<?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-04-18 13:24:01 36bae8f24429309f147f3bd6d8a1e0c9

2018-04-18 13:24:01 0eab3b000e3d831a57f9e7b77f136900

【问题讨论】:

  • 您确定日期时间 1000% 相同吗?考虑使用硬编码的日期时间值再次测试
  • 我已经尝试过了,但随后产生了巨大的雪球效应,导致将日期时间转换为字符串。
  • 这是我的一个示例:pastebin.com/FUaTg0ba

标签: php python md5


【解决方案1】:

在 Python 中,您正在对时间戳字符串进行哈希处理。在 PHP 中,您调用 strtotime() 并将字符串转换为整数 UNIX 时间戳。删除该呼叫。

【讨论】:

  • 感谢您的回复。我忘了清楚我需要 Python 代码来匹配 PHP 哈希,而不是相反。
猜你喜欢
  • 2014-11-18
  • 1970-01-01
  • 1970-01-01
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
相关资源
最近更新 更多