$salt = uniqid();
$crypt = md5($password , $salt);
$new_pass = $crypt.':'.$salt;
在数据库中:ot÷„[ªà%Ûʼn¹:17b8bc731c322c9e05a26666458117f4
这是语法错误吗?或者数据库没有设置正确的字符格式?
您启用了raw_output
如果可选 raw_output 设置为 TRUE,则 md5 摘要以长度为 16 的原始二进制格式返回。
改变
$crypt = md5($password , $salt);
^------ You moved the salt to raw_output
到
$crypt = md5($password . $salt);
^------ Should be this
出于安全原因,我不建议您使用md5
密码散列。MD5 被严重破坏,不再需要很长时间才能找到合适的冲突或反向哈希。一旦被破坏,哈希算法只会变得更糟,永远不会更好,因此最好选择一个完整的哈希算法。
标准
更好的选择