You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python生成的MD5与PHP7不符,求调整Python代码匹配PHP哈希

解决Python与PHP MD5哈希不匹配的问题

嘿,我来帮你搞定这个困扰!你说日期字符串完全一致但MD5哈希不一样,核心原因其实是Python和PHP对字符串的字节处理逻辑不同,只要调整Python代码的编码步骤就能解决。

问题根源

PHP的md5()函数默认直接对字符串的字节流进行哈希计算(通常用UTF-8编码,取决于PHP脚本的内部编码设置);而Python 3里的字符串是Unicode格式,hashlib.md5()必须接收字节对象才能计算哈希——如果直接传字符串要么报错,要么隐式用了和PHP不一致的编码,导致哈希结果不同。

修改后的Python代码

import hashlib
import datetime

timestamp = datetime.datetime.now() - datetime.timedelta(hours=6)
timestamp1 = timestamp.strftime("%Y-%m-%d %H:%M:%S")
print(timestamp1)
# 关键步骤:把字符串编码成与PHP一致的字节流(这里用UTF-8,是PHP最常用的默认编码)
md5_digest = hashlib.md5(timestamp1.encode('utf-8')).hexdigest()
print(md5_digest)

额外检查项(如果还是不匹配)

  • 确认PHP的编码:可以在PHP里执行echo mb_internal_encoding();查看当前编码,如果不是UTF-8,比如是GBK,就把Python里的encode('utf-8')改成encode('gbk')。
  • 再次核对日期字符串:确保两边输出的YYYY-MM-DD HH:MM:SS完全一致,包括空格、符号格式(strftime生成的格式和PHPdate()默认生成的格式是一致的,但还是要仔细核对)。

内容的提问来源于stack exchange,提问作者Alex Winkler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:46:37