如何在没有IV的情况下在.NET中进行AES加密

Max*_*eat 2 .net cryptography rijndael asp-classic initialization-vector

我们的Classic ASP应用程序的遗留部分使用了一些代码,这些代码应该用Rijndael(AES)加密/解密字符串.此代码在Internet上找到(Rijndael AES Block Cipher(VB Version)).我已经在SO上发现了一个引用这个精确库的问题,并且问我几乎和我一样,但我怀疑至少有一件事情出错了(除了在bytes数组的开头加上数据的长度加密).vbScript实现似乎根本不向要加密的数据添加IV.所以,我无法将相同的加密与RijndaelManaged匹配,因为它:

  1. 每次自动生成不同的IV
  2. 绝对需要IV

有人知道AES是否可以加密.Net中的某些东西而不指定IV(空)?

imi*_*ers 6

您使用的代码和问题的解决方案都是完全不安全的.首先,*您不应该在任何情况下使用CRYPTO图书馆一些随机的GUY WROTE*时间段,故事结束.Windows和.net都有受信任,经过审查的加密库.他们没有定时攻击问题,正确的后门,或只是没有人知道加密的任何人会尝试的蠢事.

例如,您提到的库似乎只支持ECB模式.这是完全不安全的,没有人知道他们在做什么会做到这一点.虽然有很多原因,但最好的示范是为什么不这样做:

在此输入图像描述

这是linux penguine的ecb加密图片.不是很安全吗?