2013-12-16 53 views
0

我已經使用了許多文件加密軟件,我注意到的是應用程序只有一種加密算法,或者一旦文件發送給尊敬的用戶,他/她必須使用相同的設置,使用該文件在第一個加密地點。我打算在C#中開發一個支持多種算法和設置的應用程序。是否可以將所有加密設置安全地嵌入到加密文件中?

我的問題是可以安全地將除密碼之外的所有設置嵌入到加密文件中,以便用戶可以用剛剛解密文件輸入密碼並且不需要知道用於加密文件的所有設置。此外,我想包括將使用前面提到的功能的自解密存檔的功能。

我想嵌入salt,hash和使用的加密算法!

請指導我正確的方向。

+0

它是你的代碼加密和解密文件? – Liam

+1

該服務有什麼用?任何有足夠能力用對稱密鑰解密文件的黑客都可以發現其餘的設置並解密文件。 –

+0

@Liam雅我的代碼加密和解密。 – Neel

回答

1

你有文件來加密和你希望它被加密的設置。 然後只需加密文件並向其中添加一些元數據,在這裏描述設置以對其進行解密。

一旦用戶輸入正確的密碼,就會讀取元數據並嘗試解密該文件。 你甚至可以用密碼加密你的元數據。

1

當你在一開始讓流看,例如,像這樣輸出的加密「信息」流粘在你的信息:

[EncryptionAlgorithm] - 4 bytes (for example) 
[salt len] - 4 bytes(ish) 
[salt] - however many bytes your alg needs 
[Encrypted Data len] - 8 bytes(ish) 
[Encrypted Data Blob] - however long it is 
[hash] - final however many bytes it needs to be 

此外,作爲小費,我說你的加密KEY作爲加密塊的第一部分(標準AES的前256個字節)。這樣你可以解密 - >檢查前256個字節是否等於用戶提供的密鑰 - >繼續。

此外,如果您使用MSDN上讀取的有關.NET FCL(Rfc2898DeriveBytes)中提供的密碼生成密碼算法的密碼,請閱讀它。

希望給你一個可行的方法的想法?

相關問題