2012-10-01 71 views
1

我正在寻找有关密码保护的最佳做法,大家都在谈论bcrypt和其他哈希类。但我不知道如何验证密码,如果它包含独特的随机盐在数据库中加密密码

对于cookies它的罚款,但没有em - 每次将是唯一的加密值,我如何验证用户密码与随机值? Oo。或bcrypt只适用于cookies? 然后我应该用db中的密码做什么?

请向我描述我的错误 - 我在学习它的时候失去了什么。

回答

1

bcrypt算法创建一个随机盐,以标准方式存储为散列的一部分。

查看How do you use bcrypt for hashing passwords in PHP?的工作示例。

参见:

(编辑沉重,因为我的答案是错的)之前

+0

10x.Just加入(随机数据+加密通行证)?并验证脚本将采取大量的通行证,没有盐,并与传递的数据检查它?我试图使用** bcrypt **,但每次都必须生成唯一的哈希值并传入_check()_函数,这意味着每次都是随机哈希,对吗?我知道hash应该每次刷新,但是如何检查一个有效的if每次都应该是随机的? – Maxo

+0

为什么你需要在'bcrypt'使用的盐之上再加盐? –

+0

@杰克你没有。也许你误解了我的答案? –

1

将有一组功能在未来的PHP版本,详情请看the accepted RFC

安东尼,RFC和补丁的作者非常友好,提供了用php编写的compatibility library,所以你现在就可以开始使用这个新功能!

在幕后它使用了目前已知最强大的algorythm的地穴。

+0

请告诉我请问随机盐的密码如何验证?我的服务器的PHP只有5.2你在这种情况下配方? – Maxo

+1

我链接的库有一个名为'password_verify'的函数。你应该更新你的服务器,php5.3已经5年了,并且支持5.2在两年前结束。 – Maerlyn