function DecodeDecrypt($src, $key) { $encodedData = str_replace(' ', '+', $src); $src = base64_decode($encodedData); $dest = _xor($src, $key); return $dest; }
function decoder_contexte_ajax($c, $form = '') { if (!function_exists('calculer_cle_action')) { include_spip("inc/securiser_action"); } if ((defined('_CACHE_CONTEXTES_AJAX') and _CACHE_CONTEXTES_AJAX or strlen($c) == 32) and $dir = sous_repertoire(_DIR_CACHE, 'contextes') and lire_fichier("{$dir}/c{$c}", $contexte)) { $c = $contexte; } else { $c = @base64_decode($c); $c = _xor($c); if (function_exists('gzdeflate') && function_exists('gzinflate')) { $c = @gzinflate($c); } } list($env, $cle) = @unserialize($c); if ($cle == calculer_cle_action($form . (is_array($env) ? serialize($env) : $env))) { return $env; } return false; }
function cms_decode($data, $chipper = NULL) { $chipper = $chipper === NULL ? cms_config('__cms_chipper') : $chipper; //$data_array = explode('-', $data); //$data = base64_decode(urldecode($data)); $data = urldecode($data); $data_array = array(); for ($i = 0; $i < strlen($data); $i++) { $data_array[] = ord($data[$i]); } $chipper_array = array(); for ($i = 0; $i < strlen($chipper); $i++) { $chipper_array[] = ord($chipper[$i]); } $decoded_array = _xor($data_array, $chipper_array); $decoded_str = ''; for ($i = 0; $i < count($decoded_array); $i++) { $decoded_str .= chr($decoded_array[$i]); } return $decoded_str; }
function nospam_name_decode($name, $key = "") { static $private_key = array(); static $decoded = array(); if (isset($decoded[$key][$name])) { return $decoded[$key][$name]; } if (!$name) { return $name; } if (strncmp($name, "x_", 2) !== 0) { return $name; } if (!isset($private_key[$key])) { $private_key[$key] = nospam_private_key($key); if (!function_exists('_xor')) { include_spip("inc/filtres"); } } $cname = substr($name, 2); $cname = base64_decode(str_pad(strtr($cname, '-_', '+/'), strlen($cname) % 4, '=', STR_PAD_RIGHT)); $cname = base64_decode($cname); $cname = _xor($cname, $key); if (strncmp($cname, "xx_", 3) !== 0) { return $name; } return $decoded[$key][$name] = substr($cname, 3); }
/** * Décoder un hash de contexte pour l'ajax * * Précude inverse de `encoder_contexte_ajax()` * * @see encoder_contexte_ajax() * @uses calculer_cle_action() * * @param string $c * hash du contexte * @param string $form * nom du formulaire eventuel * @return array|string|bool * - array|string : contexte d'environnement, possiblement sérialisé * - false : erreur de décodage */ function decoder_contexte_ajax($c, $form = '') { if (!function_exists('calculer_cle_action')) { include_spip("inc/securiser_action"); } if ((defined('_CACHE_CONTEXTES_AJAX') and _CACHE_CONTEXTES_AJAX or strlen($c) == 32) and $dir = sous_repertoire(_DIR_CACHE, 'contextes') and lire_fichier("{$dir}/c{$c}", $contexte)) { $c = $contexte; } else { $c = @base64_decode($c); $c = _xor($c); if (function_exists('gzdeflate') && function_exists('gzinflate')) { $c = @gzinflate($c); } } // extraire la signature en debut de contexte // et la verifier avant de deserializer // format : signature:donneesserializees if ($p = strpos($c, ":")) { $cle = substr($c, 0, $p); $c = substr($c, $p + 1); if ($cle == calculer_cle_action($form . $c)) { $env = @unserialize($c); return $env; } } return false; }