Apache HTTPD 或 APR 的 PBKDF2(或 BCrypt)哈希實現

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 文件中某個明顯的東西?)

答案1

所以經過進一步的回顧,似乎一切都比我想像的簡單很多。

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"

答案2

對於未來的搜尋者,請注意,bcrypt 支援已新增至 Apache 2013 年 2 月發布的 2.4.4 版本。

$ htpasswd -nbB -C 11 使用者名稱 密碼 使用者名稱:$2y$11$p1icdLB/EqI2z2EPt6JrQOUdy1GzHg5GdDWcwdj3MIXJLSkgrILoa

相關內容