我正在创建一个带数据库的登录系统,并想询问散列密码.我目前在PHP中使用函数password_hash(),另外我添加了一个20个字符的自定义随机字符串.看起来像这样:
$salt = generateRandomString();
$hashedPwd = password_hash($pwd + $salt, PASSWORD_DEFAULT);
Run Code Online (Sandbox Code Playgroud)
功能:
function generateRandomString($length = 20) {
$characters='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+{}|[]/?~`';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
Run Code Online (Sandbox Code Playgroud)
我稍后也会将随机字符串发送到数据库,并在登录时将其与密码一起验证.
我的问题是我是否需要额外的字符串?请记住,我希望它尽可能安全.