【发布时间】:2012-02-04 12:15:07
【问题描述】:
当我使用hash('sha512', $salt . $password); 对我的密码进行哈希处理时,数据库中密码列的最大长度应该是 512 还是被砍掉是否重要?或者它可能比512长吗?谢谢。
【问题讨论】:
当我使用hash('sha512', $salt . $password); 对我的密码进行哈希处理时,数据库中密码列的最大长度应该是 512 还是被砍掉是否重要?或者它可能比512长吗?谢谢。
【问题讨论】:
SHA512 实际上返回一个长度为 128 的字符串。所以简短的回答是,您的字段只需 128 个字符。
【讨论】:
CHAR(128)。
【讨论】:
只是一个查看哈希密码长度的演示
$password = 'password';
$salt = 'salt';
$hash = hash('sha512', $salt.$password);
echo strlen($hash); // OUTPUTS 128
【讨论】:
这取决于您使用的哈希算法生成的字符串的长度。 here 发布的评论显示,您选择的 sha512 算法生成的字符串长度为 128 个字符。因此,您的字段应为 128 个字符。它可以更多,但没有必要。减少它会减少密码,从而使您的散列密码“无效”。
【讨论】: