是否有可能在实现Rijndael解密时不使用IV ?

本文关键字:IV 解密 有可能 实现 Rijndael 是否 | 更新日期: 2023-09-27 18:07:29

我正在使用Rijndael算法实现对密文的解密。不幸的是,我无法访问数据的加密,只提供了密码(用于生成密钥)和算法类型。

我没有盐(这似乎是可以的),我没有静脉注射。现在,我的问题是,我是否绝对必须有静脉注射才能执行解密?我怀疑编写加密的开发人员没有使用盐或IV(如果可能的话)。

我尝试将IV设置为null,没有运气,并且生成Rijndael实例创建默认IV,这在解密后扭曲了明文的前16个字符。

有没有办法消除静脉注射的效果?还是需要尝试获取加密中使用的IV ?

是否有可能在实现Rijndael解密时不使用IV ?

如果密码在CBC模式下被用来加密(这是默认的),那么你必须知道IV,没有办法。

然而,由于IV的目的与密码的目的不同,有时您会发现IV附加在加密数据之前(以便接收方可以轻松获取它以在解密时使用)。

您可以使用ECB模式,它将忽略IV。但是,对于CBC等其他模式,您需要IV。

如果它是用IV加密的,那么是的,您将需要IV才能正确解密。

从你对前16个字符的描述中,听起来你在CBC模式下工作。请参见下图,了解您需要IV的原因:http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29.