首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php加密密码

php加密密码
EN

Stack Overflow用户
提问于 2012-04-26 08:45:16
回答 5查看 7.6K关注 0票数 1

好的,我知道这个话题是在堆栈溢出中提到的很多,但是他们并没有强调我想要的答案。

我使用md5加密,我告诉它(不久前我还是个php的菜鸟)是安全的,但是如果你在好的老谷歌上查一下,它已经加密和解密了。

所以我开始寻找其他地方,也就是这里。

我听说过所有的加密方法,例如SHA-1、MD5、SHA-2、SHA-256、SHA-512等等。

很多人说使用Bcrypt来查看,这是与SHA-512的比较。

人们说,使用随机盐并将其保存在数据库中是愚蠢的,因为假设黑客侵入了数据库并获取所有密码的盐分,所以在黑客解密所有密码之前更改所有盐类,然后再到其他地方尝试,例如facebook、google和stackoverflow,这是一个小窗口。

所以我的问题是,这是这样做的最安全的方法(加密(用SHA-512加密),并使用随机盐(也将存储在数据库中),或者使用固定的盐类,这是硬连接到我的php代码中的,它与数据库随机盐具有相同的安全性。

我读过很多关于这方面的文章,所以我想我知道我在说什么,我喜欢漫不经心地说,我读过很多关于这方面的文章,确切地说是20篇。

哦,几乎忘记了,如果您对密码进行多次加密,还是只加密一次,是否会更安全?

谢谢你帮我写了很多关于的文章

我很抱歉,人们我有点困惑,但我没有得到一些其他人的帖子,我开始闲谈关于加密,但我说的是哈希字符串。

对此我很抱歉

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-04-26 08:55:23

我使用md5加密,我告诉它(不久前我还是个php的菜鸟)是安全的,但是如果你在好的老谷歌上查一下,它已经加密和解密了。

首先是吹毛求疵。这是散列而不是加密。散列是一种方法。现在要回答您的问题:不要使用md5()来散列密码。已经不安全了。它已经坏了好几年了。不仅发现了冲突(导致相同哈希的多个值),而且使用任何合适的GPU,md5都可以非常快地被强制执行。

很多人说使用我看过的Bcrypt,它是对SHA-512的。

你应该用bcrypt。就目前而言,这是密码哈希的最佳选择。

人们说使用随机盐并将其保存在数据库中,这是愚蠢的。

不,这不傻。盐碱化密码可防止攻击者为所有密码创建彩虹表。为了您的方便,艾克斯克尔创建了一个密码库,可以在GitHub上找到。

一些相关文章和堆栈溢出帖子:

更新

当PHP5.5发布时,它将引入一种简单的方法来正确加密您的密码。默认情况下,它将使用bcrypt,并自动向密码中添加盐分。当一种更好的算法在未来(例如氪星)出现时,它将能够使用它。有关更多信息,请参见关于这个新特性的RFC。它还将具有一个功能,即检测当前散列密码的使用算法,并在用户可用时登录到更新(/更安全)算法时自动更新它们。有关实现示例,请查看这个GitHub要点

如果您仍然使用较旧版本的PHP,并且无法更新,则会出现a pure PHP implementation of the C API available with support of PHP >= 5.3.7。这个compat使用与C完全相同的实现。

注意:使用更安全的scrypt甚至更好,但是到目前为止PHP还不支持它。如果情况确实如此,我将更新这一答复。

票数 7
EN

Stack Overflow用户

发布于 2012-04-26 08:48:35

你把散列加密搞混了。

票数 2
EN

Stack Overflow用户

发布于 2012-04-26 08:49:45

我使用用户名中的某些字符以及php代码中的一个字符串进行盐分。从理论上讲,他们需要代码和数据库来解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10329999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档