我想知道我是否使用PHP的hash()函数生成sha512哈希我的MySQL表字段如何才能保存哈希密码。
这是我当前的MySQL密码字段布局
char(40)
答案 0 :(得分:18)
sha512哈希表示为 128个字符长的字符串。
例如,以下代码部分:
$sha512 = hash('sha512', "Hello, World!");
echo strlen($sha512);
将提供此输出:
128
这意味着您的char(40)
太小了,您应该使用char(128)
。
另一种解决方案是将其存储为二进制形式,而不是字符串 - 这意味着64字节。
但请注意,在某些情况下,我认为可能更难处理这种表现形式。