PHP密码加盐Hash

作者Veris 文章分类 分类:PHP 文章评论 0条评论 阅读次数 已被围观 557

加盐Hash:

$salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM));  
$password=sha1($register_password.$salt);  

解释:

  1. 使用mcrypt,产生电脑随机生成的,专门用户加密的随机数函数。
  2. 把得到的随机数通过base64加密,使其变长并且不利于猜解。
  3. 把得出的盐拼接到密码的后面,再对其使用sha1进行哈希,再把password存入到用户的数据库。

PS:为何不用静态的salt?没有必要,使用一个动态随机足够长的盐足矣。

为何不用MD5?因为长度不够。

为何没有使用多次HASH?因为这样反而容易发生碰撞。

HASH好之后怎么使用“腌制”好的密码?

用户注册->提交密码->产生salt->腌制好的密码存入数据库->salt存入数据库。

用户登录->提交密码->调用salt接到提交密码的后面->进行HASH->调用之前注册腌制好的密码->对比HASH值是否和这个密码相同

分类:PHP
标签: hash salt

发表评论: