@sparco356

В чем моя ошибка в коде php?

Здравствуйте! Подскажите пожалуйста в чем моя ошибка при попытке запуска метода шифрования TEA на языке PHP?
Нашел на иностранном сайте реализацию данного метода на двух языках JS и PHP. Пытаюсь зашифровать одни и теже данные, на php выдает непонятно что, а на JS работает правильно, подскажите пожалуйста люди добрые в чем ошибка?
Код прикладываю.
<?php
 
/**
 * @author www.Tutorialspots.com
 * @copyright 2017
 */
 $a=array(65,65);
 print_r($a);
 $k=array(65,65,65,65);   


$p1=TEA::TEAencrypt($a,$k);
 print_r($p1);
 $p2=TEA::TEAdecrypt($p1,$k);
 print_r($p2);

class TEA{
    /**
     * TEA encrypt
     * @param $v 64bits
     * @param $k 128bits
     */
    public static function TEAencrypt ($v, $k) {
        $v0=$v[0]; $v1=$v[1]; $sum=0;           /* set up */
        $delta=0x9e3779b9;                     /* a key schedule constant */
        $k0=$k[0]; $k1=$k[1]; $k2=$k[2]; $k3=$k[3];   /* cache key */
        for ($i=0; $i < 32; $i++) {                       /* basic cycle start */
            $sum += $delta;
            $v0 += (($v1<<4) + $k0) ^ ($v1 + $sum) ^ (($v1>>5) + $k1);
            $v1 += (($v0<<4) + $k2) ^ ($v0 + $sum) ^ (($v0>>5) + $k3);
        }
        echo $sum;                                              /* end cycle */
        $v[0]=$v0; $v[1]=$v1; 
        return $v;
    }
     
    /**
     * TEA decrypt
     * @param $v 64bits
     * @param $k 128bits
     */
    public static function TEAdecrypt ($v, $k) {
        $v0=$v[0]; $v1=$v[1]; $sum=0xC6EF3720;  /* set up */
        $delta=0x9e3779b9;                     /* a key schedule constant */
        $k0=$k[0]; $k1=$k[1]; $k2=$k[2]; $k3=$k[3];   /* cache key */
        for ($i=0; $i<32; $i++) {                         /* basic cycle start */
            $v1 -= (($v0<<4) + $k2) ^ ($v0 + $sum) ^ (($v0>>5) + $k3);
            $v0 -= (($v1<<4) + $k0) ^ ($v1 + $sum) ^ (($v1>>5) + $k1);
            $sum -= $delta;
        }   
        echo $sum;                                           /* end cycle */
        $v[0]=$v0; $v[1]=$v1;
        return $v;
    }
}
 
?>


<script type="text/javascript">
    var TEA = {};
   /**
     * TEA encrypt
     * @param v 64bits
     * @param k 128bits
     */
TEA.TEAencrypt = function (v, k) {
  var v0=v[0], v1=v[1], sum=0,           /* set up */
  delta=0x9e3779b9,                     /* a key schedule constant */
  k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */
  for (var i=0; i < 32; i++) {                       /* basic cycle start */
    sum += delta;
    v0 += ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
    v1 += ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
  }                                              /* end cycle */
  v[0]=v0; v[1]=v1;
  return v;
}
 
   /**
     * TEA decrypt
     * @param v 64bits
     * @param k 128bits
     */
TEA.TEAdecrypt = function (v, k) {
  var v0=v[0], v1=v[1], sum=0xC6EF3720,  /* set up */
  delta=0x9e3779b9,                     /* a key schedule constant */
  k0=k[0], k1=k[1], k2=k[2], k3=k[3];   /* cache key */
  for (var i=0; i<32; i++) {                         /* basic cycle start */
    v1 -= ((v0<<4) + k2) ^ (v0 + sum) ^ ((v0>>5) + k3);
    v0 -= ((v1<<4) + k0) ^ (v1 + sum) ^ ((v1>>5) + k1);
    sum -= delta;
  }                                              /* end cycle */
  v[0]=v0; v[1]=v1;
  return v;
}
var x=TEA.TEAencrypt([65,65],[65,65,65,65]);
console.log(x);//[-3257293243,6661612959]
alert(TEA.TEAdecrypt(x,[65,65,65,65]));
</script>
  • Вопрос задан
  • 398 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы