我正在研究如何构建一个登录系统,阅读了php手册后得知如果你向crypt()
函数传递一个两位数的盐值,它会返回一个hash字符串,而这个字符串前两位就是你使用的盐值。
示例:
$salt = "kr";
echo crypt("mysecret",$salt); //returns "kreOI.F7eOQMY"
我的第一个想法是,这不会帮助那些试图反向破解你的哈希值的人吗?
我在维基百科上查了一下关于盐的内容:
为了最好的安全性,盐值应该保密。
那么我不明白为什么crypt函数返回的所有哈希值都以使用的盐值作为前缀呢?
这是否有原因?这是否应该是一个安全问题?