1

当我运行时:

SELECT MD5(  "WhatIsWrongWithThis?" ) AS hash

我得到一个 64 个字符长的输出

6631303664616331363338613139623830363332663233656662643635633039

这与我的 PHP 32 预期输出不同

f106dac1638a19b80632f23efbd65c09
  • 我注意到我的远程mysql很好。
  • 已经重启了mysql服务。

本地和远程mysql md5比较

这里发生了什么?


更新:

注意:问题发生在两个层面:

  1. PHP/MySQLSOLVED by reboot
  2. phpMyAdminSOLVED by checkbox

1.PHP/MySQL

我已经尝试停止并重新启动 mysql 服务器,但什么也没有。然后在我重新启动计算机后,问题 1.消失了

仍然不知道为什么

2. phpMyAdmin

在回答和评论之后,我看到 phpMyAdmin 确实选中了“将二进制内容显示为 HEX”复选框...取消选中它解决了问题 2 phpMyAdmin 问题

在此处输入图像描述

4

2 回答 2

2

当我执行您的查询时,我得到的结果与 PHP 相同:

HASH
f106dac1638a19b80632f23efbd65c09

看到这个在SQLFiddle中运行


我知道发生了什么:您看到的是结果的十六进制,就好像您执行了

SELECT HEX( MD5(  "WhatIsWrongWithThis?" )) AS hash

f66十六进制
131十六进制
等等

您的控制台工具必须正在转换它

于 2013-05-15T03:14:02.467 回答
0

实际上,如果我提醒正确,您可以看到您的“64 长度”输出仅由数字组成,PHPMyAdmin 将结果读取为二进制。

希望您能够在这里获得更多关于此的信息:

MySQL 上的 MD5(RAND()) 仅返回数字

于 2013-05-15T03:27:49.000 回答