MYSQL unhex()不等同于PHP hex2bin(),两者都给出不同的结果

时间:2016-03-27 09:17:23

标签: php mysql

我正在尝试使用PHP而不是MYSQL在数据库中添加键值

select unhex(md5('google.com')) from x;

输出

HVkg9LRLJ6gCvXfE8FNvWg==

然而使用PHP

echo hex2bin((md5("google.com")));

输出

Y ��K'��w��SoZ

我不确定这里有什么问题,有什么帮助吗?

EDIT1 约阿希姆·伊萨克森

enter image description here

1 个答案:

答案 0 :(得分:0)

我不确定你是如何获得这个值的,但是在MySQL提示符下进行选择会得到与PHP相同的值;

mysql> select unhex(md5('google.com'));
+--------------------------+
| unhex(md5('google.com')) |
+--------------------------+
| Y �K'��w��SoZ         |
+--------------------------+
1 row in set (0.00 sec)

您正在显示的是同一件事的 base64编码值;

mysql> select to_base64(unhex(md5('google.com')));
+-------------------------------------+
| to_base64(unhex(md5('google.com'))) |
+-------------------------------------+
| HVkg9LRLJ6gCvXfE8FNvWg==            |
+-------------------------------------+
1 row in set (0.00 sec)

你的值如何得到base64编码我不确定,但它似乎与你正在显示的MySQL查询无关。它可能是由您在PHP中获取值的方式引起的。