Php Blowfish解密加扰数据

时间:2012-09-13 19:34:14

标签: php blowfish encryption-symmetric

我正在尝试加密xml字符串,将其保存在某处,然后稍后解密(在cbc模式下使用blowfish)。

当我解密字符串时,它会扰乱前4个字符。

$text = "<?xml version="1.0" encoding="ISO-8859-1"?> ....";
$td = mcrypt_module_open('blowfish', '', 'cbc', '');
$iv = 'kd84h28v';
$ks = mcrypt_enc_get_key_size($td);
$key = substr(md5('randomString1234'), 0, $ks);
mcrypt_generic_init($td, $key, $iv);
$cypher = mcrypt_generic($td, $text);
print mdecrypt_generic($td, $cypher);

# prints: çGÖºÌrsion="1.0" encoding="ISO-8859-1"?>

我会使用ecb模式 - 解密很好 - 除了当前的php实现忽略了iv。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:0)

来自manual

  

使用重新初始化加密缓冲区非常重要   尝试解密数据之前的mcrypt_generic_init()。

所以你可能需要这样的东西:

mcrypt_generic_init($td, $key, $iv);
$cypher = mcrypt_generic($td, $text);
mcrypt_generic_deinit($td);
mcrypt_generic_init($td, $key, $iv);
print mdecrypt_generic($td, $cypher);