/** * 字符串加密解密(位运算) * 思路 字符串A 和key 生成 b b和key就能还原b * @param $string * @param $action * @param $hash */ function strcode($string, $action = 'ENCODE', $hash = '') { $action != 'ENCODE' && $string = base64_decode($string); $code = ''; ! $hash && $hash = 'luge'; $key = md5($_SERVER['HTTP_USER_AGENT'] . $hash); $keylen = strlen($key); $strlen = strlen($string); for ($i = 0; $i < $strlen; $i ++) { //echo $i; $k = $i % $keylen; //余数 将字符全部位移 $code .= $string[$i] ^ $key[$k];//位移 } return ($action != 'DECODE' ? base64_encode($code) : $code); }