【发布时间】:2014-08-17 22:56:56
【问题描述】:
我正在开发一个服务器控制面板,但是我一直无法在mysql数据库中正确设置用户密码。
用于存储密码的mysql查询如下:
ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
然而,我无法在 php 中复制结果(当然,使用静态盐):它们只是不匹配。
这是我一直在使用的 php 代码:
$salt = '1234567890123456';
$password = 'hello';
$hexhash = hash('sha512', '$6$'. $salt);
// bda6a11cc3aa00b8fe46f0559e86b3e4be3a6646f7dca2df29da1db86cfd7fc0ceb9ca076d16f0296b82e120170f08e049f607cc6e2d7328976f8cb4e8cacf98
$binhash = hex2bin($hexhash);
$hash = base64_encode($binhash);
// vaahHMOqALj+RvBVnoaz5L46Zkb33KLfKdoduGz9f8DOucoHbRbwKWuC4SAXDwjgSfYHzG4tcyiXb4y06MrPmA==
密码应该只是12NKz5XM5JeKI。
关于为什么 mysql 和 php 实现不同的任何线索?
【问题讨论】:
标签: php mysql encryption passwords postfix-mta