Пытаюсь сохранить зашифрованную информацию в поле базы данных

У меня огромные проблемы с хранением зашифрованной информации в базе данных mysql, движок mySam

Я шифрую информацию следующим образом:

function in($plaintext) {
 $cipher = 'rijndael-256';
 $mode = 'cbc';
 $key = 'key';

    $td = mcrypt_module_open($cipher, '', $mode, '');
    $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
    mcrypt_generic_init($td, $key, $iv);
    $crypttext = mcrypt_generic($td, $plaintext);
    mcrypt_generic_deinit($td);
    return $iv.$crypttext;
}

Затем данные сохраняются в большом двоичном объекте. Когда я прихожу к расшифровке информации, выясняется, что примерно в 10% случаев она была повреждена из-за хранения в базе данных.

Я могу убедиться, что проблема связана с базой данных, так как я запускал сценарии для массового шифрования и расшифровки данных без проблем.

Есть идеи? Заранее спасибо...

[программа редактирования расшифровки]

function decrypt($crypttext)
{   
 $cipher = 'rijndael-256';
 $mode = 'cbc';
 $key = '$key';

    $plaintext = ''; 
    $td        = mcrypt_module_open($cipher, '', $mode, '');
    $ivsize    = mcrypt_enc_get_iv_size($td);
    $iv        = substr($crypttext, 0, $ivsize);
    $crypttext = substr($crypttext, $ivsize);
    if ($iv)
    {   
        mcrypt_generic_init($td, $key, $iv);
        $plaintext = mdecrypt_generic($td, $crypttext);
    }   
    return $plaintext;
}
6
задан Cœur 27 June 2018 в 03:50
поделиться