function DecodeDecrypt($src, $key)
{
    $encodedData = str_replace(' ', '+', $src);
    $src = base64_decode($encodedData);
    $dest = _xor($src, $key);
    return $dest;
}
Beispiel #2
0
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;
}
Beispiel #3
0
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);
}
Beispiel #5
0
/**
 * 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;
}