php源码分析之DZX1.5加密解密函数authcode用法
发布时间:2020-12-13 02:40:40 所属栏目:PHP教程 来源:网络整理
导读:《PHP实战:php源码分析之DZX1.5加密解密函数authcode用法》要点: 本文介绍了PHP实战:php源码分析之DZX1.5加密解密函数authcode用法,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解php源码分析之DZX1.5加密解密函数authcode用法.分享给大家供
《PHP实战:php源码分析之DZX1.5加密解密函数authcode用法》要点: 本篇章节讲解php源码分析之DZX1.5加密解密函数authcode用法.分享给大家供大家参考.具体分析如下:PHP编程 <?php $authkey = ''; /** * @param string $string: 输入的需要加密(或解密)的明文(或密文) * @param string $operation: 'DECODE'或其它,其中默认表示解密,输入其它表示加密 * @param string $key: 加解密密钥 * @param int $expiry: 有效期 */ function authcode($string,$operation = 'DECODE',$key = '',$expiry = 0) { global $authkey; $ckey_length = 4; $key = md5($key != '' ? $key : $authkey); $keya = md5(substr($key,16)); $keyb = md5(substr($key,16,16)); $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string,$ckey_length): substr(md5(microtime()),-$ckey_length)) : ''; $cryptkey = $keya.md5($keya.$keyc); $key_length = strlen($cryptkey); $string = $operation == 'DECODE' ? base64_decode(substr($string,$ckey_length)) : sprintf('%010d',$expiry ? $expiry + time() : 0).substr(md5($string.$keyb),16).$string; $string_length = strlen($string); $result = ''; $box = range(0,255); $rndkey = array(); for($i = 0; $i <= 255; $i++) { $rndkey[$i] = ord($cryptkey[$i % $key_length]); } for($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $rndkey[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp; } for($a = $j = $i = 0; $i < $string_length; $i++) { $a = ($a + 1) % 256; $j = ($j + $box[$a]) % 256; $tmp = $box[$a]; $box[$a] = $box[$j]; $box[$j] = $tmp; $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); } if($operation == 'DECODE') { if((substr($result,10) == 0 || substr($result,10) - time() > 0) && substr($result,10,16) == substr(md5(substr($result,26).$keyb),16)) { return substr($result,26); } else { return ''; } } else { return $keyc.str_replace('=','',base64_encode($result)); } } $str = '1234'; $key = '1234'; echo "明文:".$str; echo "<br />"; echo "密钥:".$key; $encode = authcode($str,'11',$key); echo "<br />"; echo "加密后的密文:".$encode; echo "<br />"; $decode = authcode($encode,'DECODE',$key); echo "解密后的明文:".$decode; /*End of php*/ 运行结果如下:PHP编程 明文:1234 希望本文所述对大家的php程序设计有所赞助.PHP编程 《PHP实战:php源码分析之DZX1.5加密解密函数authcode用法》是否对您有启发,欢迎查看更多与《PHP实战:php源码分析之DZX1.5加密解密函数authcode用法》相关教程,学精学透。编程之家 52php.cn为您提供精彩教程。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |