【发布时间】:2011-02-01 00:52:54
【问题描述】:
我想通过 mcrypt 命令行工具使用 AES (rijndael 128) 加密文件。 我想将初始化向量设置为特定值。我该怎么做?
顺便说一句,我对加密还很陌生。
谢谢!
【问题讨论】:
我想通过 mcrypt 命令行工具使用 AES (rijndael 128) 加密文件。 我想将初始化向量设置为特定值。我该怎么做?
顺便说一句,我对加密还很陌生。
谢谢!
【问题讨论】:
显然没有办法使用命令行工具指定 IV,除非使用 --noiv 标志将 IV 设置为一堆零。来自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。提供源代码,这是免费软件。我上面展示的代码 sn-p 正是你要打补丁的地方。
【讨论】: