Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何储存密码_Mysql_Passwords_Md5_Sha1 - Fatal编程技术网

Mysql 如何储存密码

Mysql 如何储存密码,mysql,passwords,md5,sha1,Mysql,Passwords,Md5,Sha1,我见过各种方法如何正确地设置密码。基本前提是,在对每个密码进行散列和存储之前,将随机字符串附加到每个密码。我可以将盐与密码存储在同一张表中吗?另外,如果salt存储为纯文本,只要每个条目都有不同的salt,这有关系吗?salt的要点是,没有人拥有与用户相同的密码相同的散列,只需将用户名放在密码前面,然后散列就足够了。是的。salt背后的想法并不是说salt是秘密的,而是它会导致不同用户的相同密码被不同地散列。这会增加破解所需的彩虹表的大小,或者强制对每个密码分别运行字典(或其他)攻击。感谢您的参

我见过各种方法如何正确地设置密码。基本前提是,在对每个密码进行散列和存储之前,将随机字符串附加到每个密码。我可以将盐与密码存储在同一张表中吗?另外,如果salt存储为纯文本,只要每个条目都有不同的salt,这有关系吗?

salt的要点是,没有人拥有与用户相同的密码相同的散列,只需将用户名放在密码前面,然后散列就足够了。

是的。salt背后的想法并不是说salt是秘密的,而是它会导致不同用户的相同密码被不同地散列。这会增加破解所需的彩虹表的大小,或者强制对每个密码分别运行字典(或其他)攻击。

感谢您的参考这可能是个好主意,也可能是个坏主意。如果你有很多短用户名,那么salt就太小了,对那些特定的用户来说不太有用。你可以将他们的用户名的大小增加一倍,任何特定于用户的东西都可以。将用户名用作salt总比没有好,但完全随机的字符串会更好,因为它会有更多的熵。更好的是使用全范围位的随机二进制数据(假设字符数据不使用全范围位)。更好的做法是使用诸如PBKDF2或bcrypt之类的东西,而不是简单的盐渍散列。比这更好的是。。。等等。