@dr-might

Как решить пробему неправильного вывода данных decrypt() из БД?

При выводе данных из БД, вместо данных показывает кракозыра,
в БД идут закриптованные данные с помощью encrypt(), в чем может быть причина вывода мусора?
Если убрать decrypt(), то выводит просто зашифрованные данные, как в БД.

Данные:
Логин: xk΢5"=_F9
Е-маил: t8 e'useGai<.
Телефон: ]Mg_U{;/ADN>

//function_crypt
$cipher = MCRYPT_RIJNDAEL_256;
$mode   = MCRYPT_MODE_CBC;
$key='0';

function encrypt($data, $key, $cipher, $mode) { // Шифрование данных
    return (string) base64_encode(mcrypt_encrypt($cipher, substr(md5($key), 0, mcrypt_get_key_size($cipher, $mode)), $data, $mode, substr(md5($key), 0, mcrypt_get_block_size($cipher, $mode))));
}
function decrypt($data, $key, $cipher, $mode) {// Дешифрование данных
    return (string) mcrypt_decrypt($cipher, substr(md5($key), 0, mcrypt_get_key_size($cipher, $mode)), base64_decode($data), $mode, substr(md5($key), 0, mcrypt_get_block_size($cipher, $mode)));
}

$login = encrypt(($_POST['login']), $key, $cipher, $mode);
$password = encrypt(($_POST['password']), $key, $cipher, $mode);
$email = encrypt(($_POST['email']), $key, $cipher, $mode);
$phone = encrypt(($_POST["phone"]), $key, $cipher, $mode);


//decrypt данных
$login = decrypt(($arr['login']), $key, $cipher, $mode);
$password = decrypt(($arr['password']), $key, $cipher, $mode);
$email = decrypt(($arr['email']), $key, $cipher, $mode);
$phone = decrypt(($arr["phone"]), $key, $cipher, $mode);
  • Вопрос задан
  • 2295 просмотров
Пригласить эксперта
Ответы на вопрос 1
hedint
@hedint
Senior front-end developer
А если сделать
$test = encrypt('My test phrase', $key, $cipher, $mode);
$result = decrypt($test, $key, $cipher, $mode);

echo $result;
Все в норме? результат правильный выводится?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы