2012-07-24 58 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

相關問題