我有存儲郵箱的密碼在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