深度密码加盐原理分析
加入盐可以解决这个问题,在一定程度上,所谓的盐的方法是加上一点点酱油。其基本思想是:当用户第一次提供的密码(一般是注册),系统会自动把一些调味品的密码哈希,然后他们。当用户登录时,该系统在为用户的代码相同的腰带,然后再比较散列哈希值确定密码是否正确。
这里的调料是盐的价值,这是随机由系统产生,只有通过已知的系统。这样,即使两个用户使用相同的密码,它们的哈希值也不同,由于系统的盐值是不同的。即使黑客可以找到用户与特定的密码,通过他们的自己的密码和生成的哈希值,但这种概率太小了(密码和盐值必须为黑客相同)。
下面的PHP示例解释了MD5($ $)加密函数。
复制代码代码如下所示:
< PHP
函数散列($){
盐= random_kugbjvy美元; / /定义盐值,随机指定了字符串的程序员
美元= $ $盐; /密码和盐连接
$ = MD5($ B);
返回$
}
>
调用方式:new_password美元=哈希($ _post {密码}); / /这里接受表单提交的值,和加密
详细介绍了盐哈希过程。在第一点之前,为了验证密码,您要使用相同的密码哈希和初始使用,所以盐值存储在数据库中。
当用户注册时,
用户帐户和密码输入{ } }(和其他用户信息);系统用户生成{ }值;{值}和值系统将连接到用户密码{ };哈希值为{ }值;{哈希1 }和数据库的值分别为{ }。
当用户登录时,
用户帐户和密码输入{ } { };用户名系统找到散列{ }和{ }盐值的相应值;{盐}和制度价值的{用户输入密码}在一起;哈希连接的价值,得到{ 2 }散列(注意时间价值计算值);{ 1 }和{ 2 }比较哈希散列值是相等或不相等,密码正确,否则说密码错误。
有时,为了减少开发压力,程序员将统一使用盐值(存储在某处),而不是为每个用户生成私有盐值。