Security
Apache HTTPD 或 APR 的 PBKDF2(或 BCrypt)雜湊實現
有誰知道(簡單)在 Apache HTTPD 中使用 PBKDF2 或 BCrypt 作為密碼雜湊的方法。
一般情況是我在 /private 中有一個資源,我想將其限制為給定的使用者組。這些使用者的密碼將儲存在數據庫中,並使用
mod_auth_dbd
.我想擺脫使用 SSHA。
我可以在 Apache apr-util 中看到有一個函式
apr_password_validate
(它可以處理所有現在不受歡迎的雜湊類型);在 apr_crypto_openssl.c 中有crypto_passphrase
一個 PBKDF2 的實現。有沒有人把兩者焊接在一起?(或者我只是錯過了 Apache 文件中某處明顯的東西嗎?)
因此,經過進一步審查,似乎一切都比我想像的要簡單得多。
HTTPD 使用系統提供的 crypt 函式,因此利用了它的模組化。
http://en.wikipedia.org/wiki/Crypt_(Unix)#Modular_crypt.283.29_Algorithms
理論上它直接支持BCrypt(雖然我沒有測試過)。我確實使用 $6 前綴測試了 SHA-512。
因此,按如下計算設置密碼可以達到預期的效果:
salt = 'fGn9LR75'; puts 'quohjo5oor4ac3Deolei'.crypt('$6$' + salt); => "$6$fGn9LR75$juRSrMtKBa8pdZ8tbTouUvDItoF9Fp.LVk8Kqv2ZL5T.R.q/nUQNGePve1Ge/8rDf/xqUwgpY.3F1MQ0qtauf0"