在我的情況下,我有許多將存儲在服務器上的文件。這些文件中的每一個都是由我編寫的C#應用程序創建的。如何在保存大量獨立文件時正確調用C#中的RijndaelAlg.CreateEncryptor
背景: 對於這種應用,加密心不是重要的所需的時間量,該文件可能會很小,我們有大量的CPU週期以備用(客戶端是加密或唯一的計算機解密數據)。
每個文件是不相關的,我需要的內容能夠防止由誰得到硬盤的一個保留的系統管理員或任何人窺探(假設一個壞傢伙)
我的理解是RijndaelAlg是一個堅實的算法這種操作?假設這是信息是正確的如何正確使用RijndaelAlg.CreateEncryptor函數?
我想要的可用性是爲我的用戶輸入密碼,假設密碼是一個很好的密碼。
我的問題是
如何最好地用戶inputed字符串(C#「字符串)轉換成一個byte []轉換?我假設我應該散列來解決在其他角色上都有0的問題?做這種轉換的最佳方式是什麼?
我該如何使用IV?這是我的理解,這是一個應該填充的值(即使MSDN說可以通過'null')。我爲這個值使用了什麼?記住我的情況我有一堆需要獨立解密的獨立文件。
如果IV是衆所周知的,這是一個問題嗎? (我可以使用散列的文件名,因爲它是一個唯一的值)
有沒有比RijndaelAlg更好的算法來加密許多獨立的文件使用相同的密碼?
不要嘗試對字符串進行編碼,請使用PasswordDeriveBytes或Rfc2898DeriveBytes。 – 2010-07-18 01:16:15
嗯,好點,因爲我忘記了它是用來加密密碼的。 – 2010-07-18 01:31:00
'PasswordDeriveBytes'現在已經過時。使用['Rfc2898DeriveBytes.GetBytes'](http://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes.getbytes.aspx) – Elmo 2014-12-15 19:13:05