Kye*_*JmD 6 php security blowfish
我正在编写一个需要加密密码的注册表,我听说建议我使用Blowfish加密密码,如何使用PHP crypt()函数实现blowfish加密?另外,我打算稍后检索密码以便登录.
简短的回答是使用crypt以字符$ 2a $开头的盐,两位数的成本参数$和字母表中的22位数./0-9A-Za-z.这仅适用于支持Blowfish加密算法的系统.但是,PHP 5.3本机实现它.有关详细信息,请参阅PHP手册 - crypt.
例:
crypt('rasmuslerdorf', '$2a$07$somesillystringforsalt')
Run Code Online (Sandbox Code Playgroud)
salt字符串触发适当的算法.两位数的成本参数是底层基于Blowfish的散列算法的迭代计数的基数2对数,并且必须在[04-31]的范围内.在示例07中,告诉算法使用2 7或128次迭代.此数字越高,它会执行,但在散列用户密码的情况下的时间越长,这是一个好东西.
对类似问题的回答更详细地解释了BCrypt是什么,它与Blowfish的关系,以及为什么要使用它.Stack Overflow上还有许多其他相关主题.
phpass是一个优秀的,易于使用的密码散列框架,可以在所有系统上运行,如果支持则使用Blowfish,如果不支持,则使用其他算法.