1

我想通过 mcrypt 命令行工具使用 AES (rijndael 128) 加密文件。我想将初始化向量设置为特定值。我怎样才能做到这一点?

顺便说一句,我对加密很陌生。

谢谢!

4

1 回答 1

0

显然,没有办法使用命令行工具指定 IV,除非使用将--noivIV 设置为一堆零的标志。来自 mcrypt 的源代码,文件 src/classic.c,第 142 行:

IV = _secure_mcrypt_malloc(mcrypt_enc_get_iv_size(td));
if (noiv==FALSE)
        mcrypt_randomize( IV, mcrypt_enc_get_iv_size(td), real_random_flag);
else
        memset( IV, 0, mcrypt_enc_get_iv_size(td));

所以代码清楚地表明你要么得到一个随机的 IV 要么得到零。

不过,您可以修补 mcrypt。提供源代码,这是免费软件。我上面显示的代码片段正是您要修补的地方。

于 2010-03-26T13:27:51.783 回答