MYSQL sqlfiddle.com 中的 unhex() 不等同于 PHP hex2bin(),两者给出不同的结果

MYSQL unhex() in sqlfiddle.com is not equivalent to PHP hex2bin(), both give different results

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

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

输出

HVkg9LRLJ6gCvXfE8FNvWg==

但是使用 PHP

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

输出

Y ��K'��w��SoZ

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

编辑1 约阿希姆·伊萨克森

我不确定您是如何获得该值的,但是在 MySQL 提示符下执行 select 给出的值与 PHP;[=12= 中的值相同]

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.

中的值的方式引起的