2012-07-24 42 views
0

我是C#的新手,我有一个任务来加密C#中的文件并将其放到服务器上(提及使用256位AES加密)。无论谁想要它,他们都应该首先解密并使用它。在加密和解密时是否需要使用初始化向量?

但我有一些怀疑与它有关:我正在使用AESCryptoServiceProvider类。在这我使用的方法CreateEncryptor(Byte[], Byte[])。但我想问的问题是,如果我使用密钥和IV对文件进行加密,那么我必须与用户Key和IV共享这两个文件。

在这种情况下应该怎么做?我希望在加密和解密时只使用密钥。我怎样才能做到这一点?

我完全对此感到困惑。请给我建议一些步骤。

感谢

+0

嗨,又是有什么办法避免使用IV的?给我的指示是不要使用IV。 – 2012-08-08 04:30:50

回答

1

据我所知,IV不需要是秘密的,所以你可以在服务器上的加密数据一起存储。只要确保每个IV都是随机的,并且不要重复使用它们。

有关IV更多详情,请看这里:
http://en.wikipedia.org/wiki/Initialization_vector

+0

再次有没有办法避免使用IV?给我的指令是不使用IV – 2012-08-08 06:06:39

+2

@BhaveshShah有没有办法避免使用AESCryptoServiceProvider类IV,但它是由你,你得到(唯一与否)的IV。如果你不使用独特的IV,你的加密数据将很容易解密。一个短的(和可选的)IV是WEP很容易被破解的原因之一。 – Botz3000 2012-08-08 06:44:31

+0

感谢您的回复。我想再问一个问题,即C#中的哪个类将帮助我跳过使用IV?你可以告诉我吗? – 2012-08-08 08:35:22

相关问题