《PHP加密解密类实例代码》要点:
本文介绍了PHP加密解密类实例代码,希望对您有用。如果有疑问,可以联系我们。
<?PHP function i_array_column($input,$columnKey,$indexKey=null){ if(!function_exists('array_column')){ $columnKeyIsNumber = (is_numeric($columnKey))?true:false; $indexKeyIsNull = (is_null($indexKey))?true :false; $indexKeyIsNumber = (is_numeric($indexKey))?true:false; $result = array(); foreach((array)$input as $key=>$row){ if($columnKeyIsNumber){ $tmp= array_slice($row,1); $tmp= (is_array($tmp) && !empty($tmp))?current($tmp):null; }else{ $tmp= isset($row[$columnKey])?$row[$columnKey]:null; } if(!$indexKeyIsNull){ if($indexKeyIsNumber){ $key = array_slice($row,$indexKey,1); $key = (is_array($key) && !empty($key))?current($key):null; $key = is_null($key)?0:$key; }else{ $key = isset($row[$indexKey])?$row[$indexKey]:0; } } $result[$key] = $tmp; } return $result; }else{ return array_column($input,$indexKey); } } function randcode($len,$mode = 2){ $rcode = ''; switch($mode){ case 1: //去除0、o、O、l等易混淆字符 $chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789abcdefghijkmnpqrstuvwxyz'; break; case 2: //纯数字 $chars = '0123456789'; break; case 3: //全数字+大小写字母 $chars = 'ABCDEFGHIJKLMnopQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; break; case 4: //全数字+大小写字母+一些特殊字符 $chars = 'ABCDEFGHIJKLMnopQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz~!@#$%^&*()'; break; } $count = strlen($chars) - 1; mt_srand((double)microtime() * 1000000); for($i = 0; $i < $len; $i++) { $rcode .= $chars[mt_rand(0,$count)]; } return $rcode; } /** * $string 明文或密文 * $operation 加密ENCODE或解密DECODE * $key 密钥 * $expiry 密钥有效期 */ function authcode($string,$operation = 'DECODE',$key = '',$expiry = 0) { $ckey_length = 4; $key = md5($key); $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)); } }
以上所述是小编给大家介绍的PHP加密解密类实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对编程之家网站的支持!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。