在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
数组加密解密算法,在这里我用来加密cookie。 功能:1、可以对数组进行加密,自己可设置加密种子,并生成随机数字和数组生成的字符串混合加密。最后生成加密后的字符串。 2、逆向解密加密后的字符串。 优点:加密后生成的字符串也是随机的,每次都不同。
class _setcookie{ //加密函数(参数:数组,返回值:字符串) public static $key_t = "sjiofssdsfd";//设置加密种子 public static function encrypt($cookie_array){ $txt = serialize($cookie_array); srand();//生成随机数 $encrypt_key = md5(rand(0,10000));//从0到10000取一个随机数 $ctr = 0; $tmp = ''; for($i = 0;$i < strlen($txt);$i++){ $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]); } return base64_encode(_setcookie::key($tmp,_setcookie::$key_t)); } //解密函数(参数:字符串,返回值:数组) public static function decrypt($txt){ $txt = _setcookie::key(base64_decode($txt), _setcookie::$key_t); $tmp = ''; for($i = 0;$i < strlen($txt); $i++) { $md5 = $txt[$i]; $tmp .= $txt[++$i] ^ $md5; } $tmp_t = unserialize($tmp); return $tmp_t; } public static function key($txt,$encrypt_key){ $encrypt_key = md5($encrypt_key); $ctr = 0; $tmp = ''; for($i = 0; $i < strlen($txt); $i++) { $ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr; $tmp .= $txt[$i] ^ $encrypt_key[$ctr++]; } return $tmp; } }
$test=array( "realname" => "小明", "username" => "xiaoming", "groupid" => "1", "password" => "a23bsdfsdfsdf", "lastlogindate"=> "2013-11-01", "lastloginIP" => "10.1.1.159" ); $en_a=_setcookie::encrypt($test);
|
2022-08-18
2022-08-17
2022-11-06
2022-08-17
2022-07-18
请发表评论