php mcrypt и разные серверы - PullRequest
0 голосов
/ 24 марта 2011

я получил такой код

function EnDeCrypt($text, $key, $s = 1){
        $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND);
        switch ($s) {
            case '0':
                return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($text), MCRYPT_MODE_ECB, $iv));
                break;
            case '1':
                return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv));
                break;
            default:
                return FALSE;
                break;
        }
    }

если я вызываю EnDeCrypt в одном скрипте, все работает, если я пытаюсь передать зашифрованные данные на другой сервер в get param-я не могу расшифровать (получитьтакая строка ŸTe³qëêyÀÝ)

ключ равен, результат положил throw throw urlencode \ urldecode-not decrypt

попробуйте передать вектор mcrypt_create_iv -nothing

1 Ответ

4 голосов
/ 24 марта 2011

Чтобы расшифровать, вы должны иметь тот же вектор инициализации ($iv), который был использован для шифрования.

Передайте это как параметр вашей функции, и все должно быть в порядке.

...