/** * Decrypts text with XXTEA algorithm. */ public static function decrypt($key, $text) { $k = XXTEA::str2long($key); $v = XXTEA::str2long($text); $n = count($v); $z = $v[$n - 1]; $y = $v[0]; $d = 0.0; $m = 0; $e = 0; $q = floor(6 + 52 / $n); $s = $q * $d; while ($s != 0) { $e = XXTEA::urshift($s, 2) & 3; for ($i = $n - 1; $i >= 0; $i--) { $z = $v[$i > 0 ? $i - 1 : $n - 1]; $m = XXTEA::int32((XXTEA::urshift($z, 5) ^ $y << 2) + (XXTEA::urshift($y, 3) ^ $z << 4)) ^ XXTEA::int32(($s ^ $y) + ($k[$i & 3 ^ $e] ^ $z)); $y = $v[$i] = XXTEA::int32($v[$i] - $m); } $s = XXTEA::int32($s - $d); } return XXTEA::long2str($v); }