Security

為 crypt 啟用基於河豚的散列支持

  • December 2, 2015

如何在 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 個字元。 資源

引用自:https://serverfault.com/questions/10585