您好,欢迎访问一九零五行业门户网

测试XXTea算法,网上没有一个php版本能还原小弟我的字符串,太奇葩了

测试xxtea算法,网上没有一个php版本能还原我的字符串,太奇葩了。
原文=你是我的,sdfsdfsdfasd,error\4&:1234/?.,\3&%$#@@;
还原过的 =你是我的,sdfsdfsdfasd,error&:1234/?.,&%$#@@;
只要遇到 \3,就不行。还有个别的\4,5,6,7,8,9,有的能还原,有的不能。
网上的所有php版本的xxtea算法基本都测试过,全是同样的问题,很奇怪。有高手吗指点一二?
= 2147483648)
$n -= 4294967296;
while ($n  $n += 4294967296;
return (int) $n;
}
private function xxtea_encrypt($str, $key) {
if ($str == ) {
return ;
}
$v = self :: str2long($str, true);
$k = self :: str2long($key, false);
if (count($k)  for ($i = count($k); $i  $k[$i] = 0;
}
}
$n = count($v) - 1;
$z = $v[$n];
$y = $v[0];
$delta = 0x9e3779b9;
$q = floor(6 + 52 / ($n +1));
$sum = 0;
while (0  $sum = self :: int32($sum + $delta);
$e = $sum >> 2 & 3;
for ($p = 0; $p  $y = $v[$p +1];
$mx = self :: int32((($z >> 5 & 0x07ffffff) ^ $y > 3 & 0x1fffffff) ^ $z  $z = $v[$p] = self :: int32($v[$p] + $mx);
}
$y = $v[0];
$mx = self :: int32((($z >> 5 & 0x07ffffff) ^ $y > 3 & 0x1fffffff) ^ $z  $z = $v[$n] = self :: int32($v[$n] + $mx);
}
return self :: long2str($v, false);

其它类似信息

推荐信息