【发布时间】:2012-05-24 06:52:46
【问题描述】:
我在 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;
}
然后将数据存储在一个 blob 中。当我开始对信息进行解密时,似乎大约 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;
}
【问题讨论】:
标签: php mysql encryption