我不时听到"使用bcrypt在PHP中存储密码,bcrypt规则"的建议.
但是什么bcrypt
呢?PHP没有提供任何此类功能,维基百科关于文件加密实用程序的唠叨和Web搜索只是揭示了不同语言的Blowfish的一些实现.现在Blowfish也可以通过PHP获得mcrypt
,但是如何帮助存储密码?Blowfish是一种通用密码,它有两种工作方式.如果它可以加密,则可以解密.密码需要单向散列函数.
解释是什么?
我正在将一个站点切换到rails.这是一个拥有5万多用户的大型网站.问题是,现有的密码哈希方法非常薄弱.我有两个选择:
1)切换到新算法,为每个人生成随机密码,然后通过电子邮件将这些密码发送给他们,并在之后立即要求更改
2)实现新算法但使用之前的旧算法然后散列结果.例如:
密码:abcdef =算法1 => xj31ndn =算法2 => $ 21aafadsada214
任何新的密码都需要通过原始算法(md5)然后如果有任何意义那么得到散列的结果?这有什么不利吗?