如何在Linux(Debian)服务器上为shadowed密码和PHP启用crypt_blowfish支持?
我指的是OpenBSD风格的基于Blowfish的bcrypt ,在PHP中称为CRYPT_BLOWFISH。
据我所知,没有Debian软件包,我还有什么其他的选项来启用这个哈希algorithm的PHP?
注意:
PHP的crypt()函数可以直接与底层操作系统提供的C库crypt(3)函数接口。
更新
软件包命名不如其可能(应该)那样清楚。
PEAR Crypt_Blowfish包是PHP的MCrypt扩展的替代品,允许快速的双向 blowfishencryption。
Debian BCrypt软件包也是“普通”双向河豚algorithm的实现。
我在找的是散列密码的Bcrypt-hash实现。
你需要在Debian中安装的软件包是libpam-unix2 。
然后,您将不得不编辑/etc/pam.d/下的以下文件,并将所有pam_unix.so用法更改为pam_unix2.so :
最后编辑common-password文件,用“blowfish”replace“md5”参数。
这些修改后更新的密码将使用河豚进行哈希处理。 现有的影子密码不会被修改。 资源
要在PHP中使用河豚鱼,您需要向crypt()提供河豚盐。 喜欢这个:
crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) )
你应该首先检查CRYPT_BLOWFISH == 1。 而且您需要使用足够长的盐(等于或大于)22个字符。 资源