在MySQL中存储SHA-512哈希

时间:2010-04-02 18:42:27

标签: php mysql security

我想知道我是否使用PHP的hash()函数生成sha512哈希我的MySQL表字段如何才能保存哈希密码。

这是我当前的MySQL密码字段布局

char(40)

1 个答案:

答案 0 :(得分:18)

sha512哈希表示为 128个字符长的字符串

例如,以下代码部分:

$sha512 = hash('sha512', "Hello, World!");
echo strlen($sha512);

将提供此输出:

128


这意味着您的char(40)太小了,您应该使用char(128)


另一种解决方案是将其存储为二进制形式,而不是字符串 - 这意味着64字节。

但请注意,在某些情况下,我认为可能更难处理这种表现形式。