我的测试用例如下:
echo crypt('string', '_....salt');//error
echo crypt('string', '_A...salt');//fast
echo crypt('string', '_AAAAsalt');//slow
http://www.php.net/manual/en/function.crypt.php中所述的解释:
CRYPT_EXT_DES - 扩展的基于 DES 的散列。“salt”是一个 9 字符的字符串,由一个下划线后跟 4 个字节的迭代计数和 4 个字节的 salt 组成。这些被编码为可打印字符,每个字符 6 位,最低有效字符在前。值 0 到 63 被编码为“./0-9A-Za-z”。在 salt 中使用无效字符会导致 crypt() 失败。
点是可打印的字符,为什么它会返回错误?哪个“顺序”适用于使用的字符,导致“AAAA”的迭代次数比“A ...”多?