PHP:在数据库中设置密码字段的最大长度是多少?

时间:2012-01-06 19:32:41

标签: php database hash

当我使用hash('sha512', $salt . $password);哈希密码时,数据库中密码列的最大长度是否为512,或者它是否会被切断?或者它可能超过512?感谢。

4 个答案:

答案 0 :(得分:12)

SHA512实际上返回128个字符串的字符串。所以简短的回答是,你的字段只需要128个字符。

答案 1 :(得分:3)

SHA512输出512位或64字节。您可以将这64个字节存储在二进制列中,这些字节由128个十六进制数字表示......

Hense你需要128尺寸..

对于stillig See here

答案 2 :(得分:1)

只是一个演示来查看散列密码的长度

$password = 'password';
$salt = 'salt';

$hash = hash('sha512', $salt.$password);

echo strlen($hash); // OUTPUTS 128

答案 3 :(得分:1)

这取决于您正在使用的哈希算法生成的字符串的长度。发布的评论here表明,您选择的sha512算法生成的字符串长度为128个字符。因此,您的字段应为128个字符。它可以更多,但它是不必要的。减少密码将减少密码,从而使您的哈希密码“无效”。