Beispiel #1
0
function myrand($max, &$seed)
{
    $seed = hexdec(gmp_strval(gmp_and(gmp_add(gmp_mul("{$seed}", "0x8088405"), "1"), "0xffffffff"), 16));
    $v = hexdec(gmp_strval(gmp_and(gmp_shiftr(gmp_mul("0x" . dechex($seed), "{$max}"), "32"), "0xffffffff"), 16));
    return $v;
}
 function tea_decrypt(&$v0, &$v1, $key)
 {
     $sum = "0xC6EF3720";
     $delta = "0x9e3779b9";
     for ($i = 0; $i < 32; $i++) {
         $v1 = hexdec(gmp_strval(gmp_and(gmp_sub("{$v1}", gmp_xor(gmp_add(gmp_shiftl("{$v0}", 4), $key[2]), gmp_xor(gmp_add("{$v0}", "{$sum}"), gmp_add(gmp_shiftr('0x' . dechex($v0), 5), $key[3])))), '0xffffffff'), 16));
         $v0 = hexdec(gmp_strval(gmp_and(gmp_sub("{$v0}", gmp_xor(gmp_add(gmp_shiftl("{$v1}", 4), $key[0]), gmp_xor(gmp_add("{$v1}", "{$sum}"), gmp_add(gmp_shiftr('0x' . dechex($v1), 5), $key[1])))), '0xffffffff'), 16));
         $sum = hexdec(gmp_strval(gmp_and(gmp_sub("{$sum}", "{$delta}"), '0xffffffff'), 16));
     }
 }