用PHP加密密码

由于Blowfish在PHP版本5.3.7之前具有漏洞,因此建议改用SHA-256或SHA-512。它们的盐格式都与河豚类似(对于SHA-256使用$5 $的前缀,对于SHA-512使用$6 $的前缀)。除此之外,它还包含一个可选的rounds参数,以强制进行多个散列。

盐本身仅短16个字符,但与河豚不同,它不仅允许使用字母数字字符。

示例

echo 'SHA-256 (no rounds): ' . crypt('password-to-encrypt', '$5$YourSaltyStringz$');
echo 'SHA-512 (with rounds): ' . crypt('password-to-encrypt', '$6$rounds=1000$YourSaltyStringz$');

输出结果

这将产生以下输出-

SHA-256 (no rounds): $5$YourSaltyStringz$td0INaoVoMPD4kieVrkGE67siKj3N8.HSff8ep0Ybs8SHA-512 (with rounds): $6$rounds=1000$YourSaltyStringz$A5UHscsEbSnPnaV6PmSF5T/MQK.Wc3klA.18c.gXG5pD0PVYSVr/7xwRu1XJyn8XpiMDNRTvpJm5S8DkmSywz1

与河豚类似,生成的哈希将包含盐作为生成的哈希的一部分。