PHP的sha1()和MySQL的SHA()会得到相同的结果吗?

时间:2011-01-25 15:06:00

标签: php mysql

如果不使用盐,它们是否相同?

4 个答案:

答案 0 :(得分:8)

是。 sha1算法总是为同一输入生成相同的值;这是散列算法的重点。它们也默认返回40个字符的小写十六进制转储。

答案 1 :(得分:2)

两者都声称实施RFC 3174.因此,它们产生相同的结果(否则实现中存在错误)。

答案 2 :(得分:2)

当然。

请注意,算法定义了160位,脚本语言实现可以将其十六进制表示形式返回为字符串。在一些实现中,十六进制表示的寄存器和短划线可以是不同的。

但是,MySQLPHP都以小写形式返回,没有破折号。

答案 3 :(得分:0)

是的

如果您遇到这些不相等的情况(例如我刚刚遇到的情况),那么很可能是您使用哈希值的方法出错或数据库状态不正确,例如您更新了一些字段但忘记了更改相应的哈希。