Неверный результат при использовании mycrypt_cfb - PullRequest
0 голосов
/ 14 сентября 2009

Вот функции шифрования и дешифрования:

function encrypt($key, $plain_text) {
    $plain_text = trim($plain_text);
    $iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));
    $c_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $plain_text, MCRYPT_ENCRYPT, $iv);
    return trim(chop(base64_encode($c_t)));
}

function decrypt($key, $c_t) {
    $c_t =  trim(chop(base64_decode($c_t)));
    $iv = substr(md5($key), 0,mcrypt_get_iv_size (MCRYPT_CAST_256,MCRYPT_MODE_CFB));
    $p_t = mcrypt_cfb (MCRYPT_CAST_256, $key, $c_t, MCRYPT_DECRYPT, $iv);
    return trim(chop($p_t));
}

Сейчас:

$key = "11111";
$str = "1000181";
echo decrypt($key,encrypt($key,$str));

Результат - 100018, пропущен последний "1"Почему?

1 Ответ

0 голосов
/ 27 февраля 2015

Решение было:

удалить вызовы trim & chop из decrypt ()

Ответ был в комментариях от KiNgMaR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...