rya*_*256 1 php security encryption hash
好吧,我知道这个主题在stackoverflow中提出了很多,但他们没有强调我正在寻找的答案.
我使用md5加密,我告诉(它是在不久之前,当我是一个菜鸟的菜鸟)是安全的,但如果你看起来好旧的谷歌它已加密和解密.
所以我开始寻找其他地方也在这里.
我已经听说过所有的加密方法,例如SHA-1,MD5,SHA-2,SHA-256,SHA-512等等.
很多人都说使用Bcrypt来看待它,它与SHA-512相比.
并且人们说使用随机盐并将其保存在您的数据库中这是愚蠢的,因为说黑客攻击您的数据库并获取所有密码的盐,因此它是一个小窗口,在黑客解密所有密码之前更改所有的盐并且去到其他地方,并尝试他们的例如Facebook,谷歌和stackoverflow
所以我的问题是这样做最安全的方式(加密(使用SHA-512)和使用随机盐也将存储在数据库中)或使用固定盐,这是固定的盐,硬连接到我的PHP代码,其中有与数据库随机盐相同的安全性.
我已经阅读了很多这方面的帖子,所以我想我知道我在说什么,我想无动于衷地说我已经阅读了很多关于这个约20的文章.
OH差点忘了,如果你多次加密密码或者只加密一次加密,它会更安全吗?
感谢您在书面文章上的帮助
我很抱歉让人混淆了一点,但我没有得到其他人的帖子,我开始谈论加密,但我在谈论哈希字符串.
对不起
我使用md5加密,我告诉(它是在不久之前,当我是一个菜鸟的菜鸟)是安全的,但如果你看起来好旧的谷歌它已加密和解密.
首先是一些挑剔.它是散列而不是加密.哈希是一种方式.现在回答你的问题:不要使用md5()
哈希密码.它不再安全了.它已经被打破了几年了.不仅发现了碰撞(多个值导致相同的散列),而且md5可以通过任何体面的GPU 真正快速地强制执行.
很多人都说使用Bcrypt来看待它,它与SHA-512相比
你应该使用bcrypt.这是目前密码散列的最佳选择.
人们说使用随机盐并将其保存在您的数据库中,这是愚蠢的
不,这不是愚蠢的.Salting密码可防止攻击者为您的所有密码创建彩虹表.ircmaxell为您提供了方便的密码库,可以在GitHub上找到.
一些相关文章和Stack Overflow帖子:
更新
当PHP 5.5发布时,它将引入一种简单的方法来正确加密您的密码.它默认使用bcrypt并自动为您的密码添加盐.当一个更好的算法将来可用(例如scrypt)时,它将能够使用它.有关更多信息,请参阅有关此新功能的RFC.它还具有检测当前哈希密码的使用算法的功能,并在用户登录到更新(/更安全)算法时自动更新它们.有关实现示例,请查看此GitHub要点.
如果您仍然使用旧版本的PHP并且无法更新,则可以使用支持PHP> = 5.3.7的纯C++ API实现.此compat API使用与C API完全相同的实现.
注意:使用更安全的scrypt会更好,但到目前为止PHP还不支持它.如果它确实在某个时候我会更新这个答案.