ESSAY / NOTE

PHP密码加盐salt Hash思路

加盐Hash: $salt=base64_encode(mcrypt_create_iv(32,MCRYPT_DEV_RANDOM)); $password=sha1($register_password.$salt); 解释: 首先使用mcrypt,产生电脑随机生成的,专门用户加密的随机数函数。 第二步,把得到的随机数通过base64加密,使其变长并且不利于猜解。 第三步,把得出的盐拼接到密码的后面,再对其使用sha1进行哈希 再把password存入到用户的数据库。 PS:为何不用静态的salt?没有必要,使用一个动态随机足够长的盐足矣。 为何不用MD5?因为长度不够。 为何没有使用多次HASH?因为这样反而容易发生碰撞。 HASH好之后怎么使用“腌制”好的密码? 用户注册->提交密码->产生salt->腌制好的密码存入数据库->salt存入数据库。 用户登录->提交密码->调用salt接到提交密码的后面->进行HASH->调用之前注册腌制好的密码->对比HASH值是否和这个密码相同 原文 http://blog.csdn.net/qq_19634033/article/details/51654732 推荐设计安全的账号系统的正确姿势 http://blog.coderzh.com/2016/01/03/security-design/