如何为散列密码生成随机盐

时间:2013-01-17 04:23:04

标签: php hash passwords salt saltedhash

  

可能重复:
  Secure hash and salt for PHP passwords

我想生成一个随机盐,然后将其与密码一起存储在用户数据库中。所以我想是这样的。

$salt = //random salt code
$hpassword = crypt($password,$salt)

2 个答案:

答案 0 :(得分:1)

PHP 5.5版将内置支持BCrypt,函数password_hash()password_verify()。对于PHP 5.3.7及更高版本,存在compatibility pack,您可以在其中找到如何使用函数mcrypt_create_iv()创建salt的良好实现,请参阅第86和121行。

由于此兼容包,您还应该考虑直接使用此功能,而不是自己编写,在这里您可以找到example。特别是为BCrypt创造盐是一件棘手的事情,人们会犯很多错误。

P.S。 salt应该尽可能随机(从操作系统的随机源中读取),因为这是在确定性计算机上使其成为唯一不可预测的最佳方法。

答案 1 :(得分:0)

尝试哈希现有字段(例如用户名)并将其用于盐。

在此尝试:http://en.wikipedia.org/wiki/PBKDF2