xxtea / xxtea-php

XXTEA encryption algorithm library for PHP.
MIT License
114 stars 49 forks source link

Bug with >> on some php version #2

Open emeric0101 opened 7 years ago

emeric0101 commented 7 years ago

Hi, i have a fix to suggest : In the function mx(), in my server, i had an issue with right byte shifting in $y >> 3 because it returned negative values. For fixting it : (from http://stackoverflow.com/questions/2642026/php-equivalent-javascript-shift-right-with-zero-fill-bitwise-operators )

private static function rightShift($x, $c)
          {
              $x = intval ($x); // Because 13.5 >> 0 returns 13. We follow.
              $nmaxBits = PHP_INT_SIZE * 8;
              $c %= $nmaxBits;
              if ($c)
                  return $x >> $c & ~ (-1 << $nmaxBits - $c);
              else
                  return $x;
          }

then replace eveywhere you use x << y

andot commented 7 years ago

In mx(), I have used ($y >> 3 & 0x1fffffff) to fix negative value. Does it not work?

emeric0101 commented 7 years ago

Yes it works fine, but it is not released, so when I use composer, i get the older version of your code.

andot commented 7 years ago

Oh, I released it now.

And you can also use xxtea-pecl to instead this pure php implementation.