PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP实现的XXTEA加密解密算法示例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP实现的XXTEA加密解密算法。分享给大家供大家参,具体如下:

php;">
<>PHP
/**
 * Xxtea 加密实现类
 */
class xxtea {
  private function long2str($v,$w) {
    $len = count($v);
    $n = ($len -1) < 2;="" if="" ($w)="" {="" $m="$v[$len" -1];="" if="" (($m="">< $n="" -3)="" ||="" ($m=""> $n))
        return false;
      $n = $m;
    }
    $s = array ();
    for ($i = 0; $i < $len;="" $i++)="" $s[$i]="pack("V",$v[$i]);" return="" $w="" substr(implode('',$s),$n)="" :="" implode('',$s);="" }="" private="" function="" str2long($s,$w)="" {="" $v="unpack("V*",$s" .="" str_repeat("/0",(4="" -="" strlen($s)="" %="" 4)="" &="" 3));="" $v="array_values($v);" if="" ($w)="" $v[count($v)]="strlen($s);" return="" $v;="" }="" private="" function="" int32($n)="" {="" while="" ($n="">= 2147483648)
      $n -= 4294967296;
    while ($n <= 2147483649)="" $n="" +="4294967296;" return="" (int)="" $n;="" }="" public="" function="" encrypt($str,$key)="" {="" if="" ($str="=" '')="" return="" '';="" $v="$this-">str2long($str,truE);
    $k = $this->str2long($key,falsE);
    if (count($k) < 4)="" for="" ($i="count($k);" $i="">< 4;="" $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="">< $q--)="" {="" $sum="$this-">int32($sum + $delta);
      $e = $sum >> 2 & 3;
      for ($p = 0; $p < $n;="" $p++)="" {="" $y="$v[$p" +1];="" $mx="$this-">int32((($z >> 5 & 0x07ffffff) ^ $y < 2)="" +="" (($y="">> 3 & 0x1fffffff) ^ $z < 4))="" ^="" $this-="">int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));
        $z = $v[$p] = $this->int32($v[$p] + $mX);
      }
      $y = $v[0];
      $mx = $this->int32((($z >> 5 & 0x07ffffff) ^ $y < 2)="" +="" (($y="">> 3 & 0x1fffffff) ^ $z < 4))="" ^="" $this-="">int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));
      $z = $v[$n] = $this->int32($v[$n] + $mX);
    }
    return $this->long2str($v,falsE);
  }
  public function decrypt($str,falsE);
    $k = $this->str2long($key,falsE);
    if (count($k) < 4)="" for="" ($i="count($k);" $i="">< 4;="" $i++)="" $k[$i]="0;" $n="count($v)" -="" 1;="" $z="$v[$n];" $y="$v[0];" $delta="0x9E3779B9;" $q="floor(6" +="" 52="" ($n="" +1));="" $sum="$this-">int32($q * $delta);
    while ($sum != 0) {
      $e = $sum >> 2 & 3;
      for ($p = $n; $p > 0; $p--) {
        $z = $v[$p -1];
        $mx = $this->int32((($z >> 5 & 0x07ffffff) ^ $y < 2)="" +="" (($y="">> 3 & 0x1fffffff) ^ $z < 4))="" ^="" $this-="">int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));
        $y = $v[$p] = $this->int32($v[$p] - $mX);
      }
      $z = $v[$n];
      $mx = $this->int32((($z >> 5 & 0x07ffffff) ^ $y < 2)="" +="" (($y="">> 3 & 0x1fffffff) ^ $z < 4))="" ^="" $this-="">int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z));
      $y = $v[0] = $this->int32($v[0] - $mX);
      $sum = $this->int32($sum - $delta);
    }
    return $this->long2str($v,truE);
  }
}
//用法测试:
$strDemo = "code.js-code.com";
$key = "123456";
$pwd = new Xxtea();
$pwdrel = $pwd->encrypt($strDemo,$key);
echo $pwdrel;
echo "
"; echo $pwd->decrypt($pwdrel,$key); ?>

大佬总结

以上是大佬教程为你收集整理的PHP实现的XXTEA加密解密算法示例全部内容,希望文章能够帮你解决PHP实现的XXTEA加密解密算法示例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。