encrypt.php // +----------------------------------------------------------------------header('Content-type:text/html; charset=utf-8');class encrypt { public static $secretKey = 'RongkaiYang';//密钥 public static $expire;//过期时间 单位
// +----------------------------------------------------------------------
header('Content-type:text/html; charset=utf-8');
class encrypt {
public static $secretKey = 'RongkaiYang';//密钥
public static $expire;//过期时间 单位秒
public static $string;
protected static $table = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
'I', 'J', 'K', 'L', 'M', 'N', 'O' ,'P',
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',
'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z', '0', '1', '2', '3',
'4', '5', '6', '7', '8', '9', '+', '/'
];
/**
* 初始化检查设置
* @param string $string 需要加密、解密的字符串
* @param string $secretKey 密钥
* @return bool
*/
public static function init($string = '', $secretKey = ''){
if(!empty($string) && is_string($string))
self::$string = $string;
if(empty(self::$string)){
return false;
}
if(!empty($secretKey) && is_string($secretKey))
self::$secretKey = $secretKey;
return true;
}
/**
* 解密
* @param string $string 加密密文
* @param string $secretKey 密钥
* @return bool|string
*/
public static function deCode($string = '', $secretKey = ''){
if(!self::init($string, $secretKey))
return false;
$decodeString = base64_decode(self::encryption(self::$string));
$createTime = hexdec(substr($decodeString, 32, 8));
if(!empty(self::$expire) && (time() - $createTime > self::$expire)){
return false;
}
return substr($decodeString, 40);
}
/**
* 加密
* @param string $string 需要加密的字符串
* @param string $secretKey 密钥
* @return bool|string
*/
public static function enCode($string = '', $secretKey = ''){
if(!self::init($string, $secretKey))
return false;
return self::encryption(base64_encode(md5(time()).dechex(time()).self::$string));
}
/**
* 加密解密算法
* @param $string 需要处理的字符串
* @return string
*/
public static function encryption($string){
$tableFlip = array_flip(self::$table);
$string = rtrim($string, '=');
$stringLen = strlen($string);
$secretKey = rtrim(base64_encode(self::$secretKey), '=');
$secretKeyLen = strlen($secretKey);
$encryptString = '';
for ($i = 0; $i < $stringLen; $i++) {
$key = $tableFlip[$secretKey[$i % $secretKeyLen]];
$sOrd = $tableFlip[$string[$i]];
$encrypt = $key ^ $sOrd;
$encryptString .= self::$table[$encrypt];
}
return $encryptString;
}
}
$str = '豫章故郡,洪都新府。星分翼轸,地接衡庐。襟三江而带五湖,控蛮荆而引瓯越。物华天宝,龙光射牛斗之墟;人杰地灵,徐孺下陈蕃之榻。雄州雾列,俊采星驰。台隍枕夷夏之交,宾主尽东南之美。都督阎公之雅望,棨戟遥临;宇文新州之懿范,襜帷暂驻。十旬休假,胜友如云;千里逢迎,高朋满座。腾蛟起凤,孟学士之词宗;紫电青霜,王将军之武库。家君作宰,路出名区;童子何知,躬逢胜饯。';
$str2 = '中国人!上午好,风轻云淡。';
//encrypt::init('中国人!上午好,风轻云淡。');
$start = microtime(true);
echo base64_encode($str);
echo '';
encrypt::init($str, '123456');
echo $encodeString = encrypt::enCode();
echo '';
//encrypt::init($encodeString);
echo encrypt::deCode($encodeString);
$end = microtime(true);
echo '';
echo $end - $start;
