为 crypt 启用基于 blowfish 的哈希支持

为 crypt 启用基于 blowfish 的哈希支持

如何在 Linux(Debian)服务器上启用 crypt_blowfish 对影子密码和 PHP 的支持?

我指的是OpenBSD 风格的基于 Blowfish 的 bcrypt在 PHP 中称为 CRYPT_BLOWFISH。

据我所知,Debian 没有适用于它的软件包,我还有哪些其他选项可以为 PHP 启用此哈希算法?

注意:
PHP 的crypt() 函数C 库 crypt(3)底层操作系统提供的功能。

更新

包 命名不够清晰。PEAR Crypt_Blowfish 软件包是 PHP MCrypt 扩展的替代品,可以快速双向吹鱼加密。

此外Debian BCrypt 软件包 也是“正常”双向 blowfish 算法的实现。

我正在寻找的是用于散列密码的 Bcrypt-hash 实现。

答案1

您需要在 Debian 中安装的软件包是libpam-unix2

然后,您必须编辑下的以下文件/etc/pam.d/,并将所有pam_unix.so用法更改为pam_unix2.so

  • 普通账户
  • 通用认证
  • 通用密码
  • 公共会话

最后,编辑common-password文件并将“md5”参数替换为“blowfish”。

修改后更新的密码将使用 blowfish 进行哈希处理。现有的影子密码不会被修改。来源

要在 PHP 中使用 blowfish,您需要向 提供 blowfish salt crypt()。如下所示:

crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) ) 

您首先应该检查 CRYPT_BLOWFISH 是否==1。并且您需要使用足够长的盐,该盐等于(或大于)22 个字符。 来源

相关内容