php – 哪些迭代规则适用于使用CRYPT_EXT_DES的crypt()?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 哪些迭代规则适用于使用CRYPT_EXT_DES的crypt()?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我的测试用例如下:

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所述的解释:

点是可打印的字符,为什么它会返回错误?哪个“订单”适用于使用的字符,导致“AAAA”迭代次数多于“A …”?

解决方法

这个问题有点陈旧,但是当我试图围绕如何创建一个内部使用的哈希类时,我发现了这个问题,我想出了这个基本功能,它将base64编码一个具有相应字符/意义的整数用作4个字符的’迭代计数’.可能的值为1到16,777,215

PRivate function base64_int_encode($num){
    $alphabet_raw = "./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $alphabet = str_split($alphabet_raw);
    $arr = array();
    $base = sizeof($alphabet);
    while($num){
        $rem = $num % $base;
        $num = (int)($num / $base);
        $arr[]=$alphabet[$rem];
    }

    $arr = array_reverse($arr);
    $string = implode($arr);

    return str_pad($string,4,'.',STR_PAD_LEFT);
}

希望它可以帮到某人!

脚本宝典总结

以上是脚本宝典为你收集整理的php – 哪些迭代规则适用于使用CRYPT_EXT_DES的crypt()?全部内容,希望文章能够帮你解决php – 哪些迭代规则适用于使用CRYPT_EXT_DES的crypt()?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。