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); } 希望它可以帮到某人! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Phpstorm,xdebug和vagrant仍在等待传入连接
- PHP array_fill_keys():使用指定的键和值来填充数组
- PHP中等效的escape(window.location.href)
- php – Codeigniter中错误的含义:“致命错误:无法重新声明
- PHP中使用BigMap实例
- PHP封装的非对称加密RSA算法示例
- php – Authorize.net CIM – 无效/退款交易
- 这里有人使用PHP-GTK吗?还有更好的选择吗?
- PHP提示Deprecated: mysql_connect(): The mysql extension
- PHP中time(),date(),mktime()区别介绍