3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php class xxtea { public function encrypt($key, $salt = null) { if (is_null($salt)) { $strSalt = $this->salt; } else { $strSalt = $salt; } return str_replace(array('+', '/', '='), array('-', '_', '.'), base64_encode($this->xxteaEncrypt($key, $strSalt))); } public function decrypt($value, $salt = null) { if (is_null($salt)) { $strSalt = $this->salt; } else { $strSalt = $salt; } $strValue = str_replace(array('-', '_', '.'), array('+', '/', '='), $value); return $this->xxteaDecrypt(base64_decode($strValue), $strSalt); } 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]); } if ($w) { return substr(join('', $s), 0, $n); } else { return join('', $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; } private function xxteaEncrypt($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); } private function xxteaDecrypt($str, $key) { if ($str == "") { return ""; } $v = $this->str2long($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); } } $vids = array( 'LDpiIaiflqKm_1-sn4rlfQ..', 'Whv6DqoIWnTjbdVpOB_G-A..', '_XzfjQwvFb1Iw7IOVObezA..', 'x4YLLeBVCF3hTXmQC-aSBg..', 'R7w6DO0HVWSptVxcUzfEMA..', 'RaEw9f_cUDLir6Ztfpis_A..', 'x1iZMvYg_aQGZXJqHrUwCA..', 'xSz5rd55YacQwj-sjO8VbQ..', 'VwNXGoiLtXiPHtmEFFRMVQ..', 'I8IzZN3DEq3gxtEkQf307g..', 'kf1prc571ansQlFJVeMXLA..', 'zDLp-memmjq9mkbM9WXmdg..', '6jV7RIzIQSg8lPtfIdwbbg..', 'AxrJCwNqFm5jdeu5YJ8dPg..', 'OQl3bTsQ7pEnZyEl8kVN8g..', 'VKS7CkhAFGz5AuxG-owjCA..', 'ESmoSOB2E_9ZTxd_9y-VnQ..', 'BOjeKIzCc45zptk-_bjS7Q..', 'g97f-XmzN-9k-965anrkvA..', 'VQsElAqBu2K2GNIIUj88ug..', 'IlKrFix9OvrMOeXEW0NORg..', 'gBQXe_sPS3P9PbM9jwZGFg..', '2k2Y8EvQvj5p2NnolYNAmQ..', 'L0II99osOogKsExJMleyFQ..', 'j08XwBlaaFf_FXpFQEG9fw..', 'Y7icpn7Ystql5gR0KlQ9-w..', 'PGbJS5W2q5Oww92xxObbFQ..', 'zv2oaf8eGU5d4eFoKfyr9A..', 'rCVGNjIiZh0GjMgrOtz_jg..', 'V-qAJ2JcBnWa2z6JduqdoQ..', 'ykHHrnnx5VGeb9TnSDuYmw..', 's75LCLqi9zMd_qK9ryjkVA..', 'roWVA9tycIQioMBXE8oEgw..', 'FkOO9v8mHl5GrgQPq4desg..', '2bfOvqywAUjD3uMrixDSXg..', 'oOr0n0Z4Vpl7hBlt7SH0Lg..', 'kw4nushuOgtabBF0V1NH8g..', 'Px9pFI_x15fEtgH_ikD51g..', 'T7ptAH3TlQJzE5ahxwfDbA..', 'fcSWOcRfXzrokzsUJozULg..', 'ozAsO0tVEAf6PPL-Bwygyw..', '_UYs73ER8y4-gITclUc5CQ..', 'dvO__BFcF3TvajG2Ct0krg..', 'ZKvfoj3aDj-hMhjYvsfpVg..', 'NtqVtPOw5l6dHsA9ZCmkSw..', 'ygfwGQgSoSoJOj0EvAjDeg..', '-df2AMojyvJ4Flx8m4lRMw..', 'dJNyq2E73uPpBGs068MEuQ..', ); foreach ($vids as $vid) { $xxtea = new xxtea(); echo $xxtea->decrypt($vid, '!@#^~ku6&%(com)T') . PHP_EOL; }
Output for 5.3.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.1.0
246267278 246267308 246269638 246279080 246459855 247525404 247525823 247526438 247526454 247526466 247526589 247526626 247526977 247527009 247527038 247527266 247527368 247527417 247527428 247527430 247527435 247527446 247527447 247527450 247527453 247527465 247527466 247527487 247527503 247527510 247527543 247527554 247527562 247527598 247527603 247527613 247527643 247527650 247527660 247527680 247527682 247527691 247527715 247527720 247527737 247531326 247531857 247547238