Security
為 crypt 啟用基於河豚的散列支持
如何在 Linux (Debian) 伺服器上啟用對影子密碼和 PHP 的 crypt_blowfish 支持?
我指的是OpenBSD 風格的基於 Blowfish 的 bcrypt,在 PHP 中稱為 CRYPT_BLOWFISH。
據我所知,它沒有 Debian 軟體包,我還有哪些其他選項可以為 PHP 啟用這種散列算法?
注意:
PHP 的crypt() 函式與底層作業系統提供的C 庫 crypt(3)函式相對直接地介面。
更新
包命名並不像(應該)那樣清晰。PEAR Crypt_Blowfish 包是 PHP 的 MCrypt 擴展的直接替代品,允許快速
的雙向河豚加密。
此外,Debian BCrypt 包 也是“普通”雙向河豚算法的實現。
我正在尋找的是用於散列密碼的 Bcrypt-hash 實現。
你需要在 debian 中安裝的包是
libpam-unix2
.然後,您必須在 下編輯以下文件
/etc/pam.d/
,並將所有pam_unix.so
用法更改為pam_unix2.so
:
- 普通賬戶
- 普通認證
- 通用密碼
- 普通會議
最後,編輯
common-password
文件並將“md5”參數替換為“blowfish”。在進行這些修改後更新的密碼將使用河豚進行雜湊處理。現有的影子密碼不會被修改。資源
要在 PHP 中使用河豚,您需要向
crypt()
. 像這樣:crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) )
您應該首先檢查 CRYPT_BLOWFISH==1。而且您需要使用足夠長的鹽,它等於(或大於)22 個字元。 資源