在 PHP 手册中指出:
CRYPT_BLOWFISH - Blowfish 使用盐进行散列,如下所示:“$2a$”,一个两位数的成本参数,“$”,以及来自字母表“./0-9A-Za-z”的 22 位数字。
我意识到盐的长度是 22。我编写了以下代码并注意到salt的输出长度是21。
$encoded = crypt('pass','$2a$08$QAZXSWEDCVFRTGBNHYUJMK'); // Lenght of Q . . . K is 22
echo $encoded;
Run Code Online (Sandbox Code Playgroud)
输出:
$2a$08$QAZXSWEDCVFRTGBNHYUJM./CR85.t4YytTnmLXsRJMfbYWopbT8Nu
K在盐中不存在:QAZXSWEDCVFRTGBNHYUJM
有什么我不明白的吗?