PeA*_*eAk 7 php mysql security
我想知道我是否使用PHP的hash()函数生成sha512哈希我的MySQL表字段如何才能保存哈希密码.
这是我当前的MySQL密码字段布局
char(40)
Run Code Online (Sandbox Code Playgroud)
Pas*_*TIN 18
sha512哈希表示为128个字符长的字符串.
例如,以下代码部分:
$sha512 = hash('sha512', "Hello, World!");
echo strlen($sha512);
Run Code Online (Sandbox Code Playgroud)
会给出这个输出:
128
Run Code Online (Sandbox Code Playgroud)
这意味着你char(40)太小了,你应该使用一个char(128).
另一种解决方案是将其存储为二进制形式,而不是字符串 - 这意味着64字节.
但请注意,在某些情况下,我认为处理这种表示可能更难.