Aes Decrypt работает неправильно при использовании GET

Aes Decrypt идет не так, когда я использую метод GET.

resetPassword.php?em=/7tI2cvhU31O0v3Dr+YGtpgPaxKVB6InHeriyZhxyNk=

это то, что я отправляю в php файл, если я печатаю: $_GET['em']
страница покажет мне этот вывод: / 7tI2cvhU31O0v3Dr + YGtpgPaxKVB6InHeriyZhxyNk =

хорошо,
если я позвоню, чтобы расшифровать функцию, как: fnDecrypt($_GET['em'], $AESPassword)
Я получаю этот вывод: H M . Ҭ ;&4or0V`j ڔݖ

если я вызову функцию расшифровки, как: fnDecrypt("/7tI2cvhU31O0v3Dr+YGtpgPaxKVB6InHeriyZhxyNk=", $AESPassword)

Я получаю правильный вывод, так может кто-нибудь сказать мне, где проблема?

моя функция AES для шифрования и дешифрования:

  $iv = "d7e45c64ecb7c5eebdb9af404c0c9eff";
function fnEncrypt($sValue, $sSecretKey) {
global $iv;
return rtrim(
base64_encode(
mcrypt_encrypt(
MCRYPT_RIJNDAEL_256,
$sSecretKey, $sValue,
MCRYPT_MODE_CBC,$iv)),
"\0\3");
}

function fnDecrypt($sValue, $sSecretKey) {
global $iv;
return rtrim(
mcrypt_decrypt(
MCRYPT_RIJNDAEL_256,
$sSecretKey, base64_decode($sValue),
MCRYPT_MODE_CBC, $iv),
"\0\3");
}

0

Решение

Я почти уверен, что вы не получите тот знак плюс, который есть в вашем URL, потому что это специальный символ в URL, который представляет пробел (шестнадцатеричное 20, 32 декабря). Знак равенства также имеет особое значение.

И если исходный знак действительно был плюсом, расшифровка не удалась, потому что это неправильный код.

Вы, вероятно, неправильно кодируете этот URL. Обратите внимание, что каждое значение, которое входит в строку запроса URL, как ключа, так и значения, должно быть закодировано в URL. использование urlencode() или же rawurlencode() за это.

Также обратите внимание, что каждый URL, который входит в HTML, должен быть закодирован HTML: htmlspecialchars(),

Еще две вещи: я почти уверен, что ваше шифрование сейчас сломано, потому что вы опубликовали больше деталей, чем вы должны о вашей схеме шифрования.

И мне непонятно, зачем вам нужно что-то шифровать при сбросе пароля внутри URL.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector