我有存储邮箱的密码在MySQL数据库用下面的SQL一个邮件服务器:盐渍密码哈希不保存盐
ENCRYPT([PASSWORT], concat(_utf8"$1$", right(md5(rand()), 8), _utf8"$"))
但没有存储在数据库中的盐。
现在我需要围绕这个数据库建立一个登录过程,但是很难比较存储的密码,因为缺少盐。我注意到,该密码哈希持有以下形式在它自身的盐:
$1$[SALT]$[PASSWORD-HASH]
如何创建一个可比的密码哈希来构建一个登录?
Dovecot能够使用存储的密码登录用户,但是如何?
'ENCRYPT()'是不是哈希。您应该使用bcrypt或scrypt或PBKDFv2。 – SLaks 2013-02-10 18:18:01
是的,那可能是对的,我将改变它。但首先我需要深入了解它,并了解它是如何工作的。 – user2059250 2013-02-10 18:25:52
@SLaks:实际上,[它是](http://dev.mysql.com/doc/refman/5.6/en/encryption-functions.html#function_encrypt)。我同意这个名字是可怕的误导。 – 2013-02-10 20:05:29