/**
*?加密功能
*?@paramstring$string明文?還是?密文
*?@paramstring$operation?DECODE表示解密,其他表示加密。
*?@paramstring$key?鑰匙
*?@paraminteger?$ expire密文的有效期
*/
功能?authcode($string,?$操作?=?解碼',?$key?=?'',?$到期?=?0)?{
$ckey_length?=?4;
$key?=?MD5($ key);?
$keya?=?MD5(substr($key,0,?16));
$keyb?=?MD5(substr($key,16,?16));?
$keyc?=?$ckey_length?($運營?==?解碼?substr($string,?0,?$ckey_length):?substr(md5(microtime()),?-$ckey_length))?:?'';
$cryptkey?=?$keya.md5($keya。$ key c);
$key_length?=?strlen($ crypt key);
$string?=?$操作?==?解碼?base64_decode(substr($string,$ckey_length))?:?sprintf('%010d ',?$到期?$到期?+?時間()?:?0).substr(MD5($string。$keyb),?0,?16).$ string
$string_length?=?strlen($ string);
$結果?=?'';
$box?=?範圍(0,?255);
$rndkey?=?array();
為了($我?=?0;?$i?& lt=?255;?$i++)?{
$rndkey[$i]?=?order($ crypt key[$ I?%?$ key _ length]);
}
for($j?=?$i?=?0;?$i?& lt?256;?$i++)?{
$j?=?($j?+?$box[$i]?+?$rndkey[$i])?%?256;
$tmp?=?$ box[$ I];
$box[$i]?=?$ box[$ j];
$box[$j]?=?$ tmp
}
對於($a?=?$j?=?$i?=?0;?$i?& lt?$ string _ length?$i++)?{
$a?=?($a?+?1)?%?256;
$j?=?($j?+?$box[$a])?%?256;
$tmp?=?$ box[$ a];
$box[$a]?=?$ box[$ j];
$box[$j]?=?$ tmp?
$結果?。=?chr(ord($string[$i])??($box[($box[$a]?+?$box[$j])?%?256]));
}
如果($操作?==?解碼’)?{
if((substr(,result,0,?10)?==?0?||?substr($result,?0,?10)?-?時間()?& gt?0)?& amp& amp?substr($result,?10,?16)?==?substr(MD5(substr($result,26).$keyb),?0,?16))?{
回歸?substr($result,?26);
}?不然呢?{
回歸?'';
}
}別的?{
回歸?$keyc.str_replace('= ',?'',?base64 _ encode($ result));
}
}
& gt我們公司常用的加密解密功能?
希望采用Thx?