我已經構建了一個CMS系統,允許用戶在我的客戶端的Intranet應用程序上創建和管理聯機表單。我應該如何爲我的AES加密數據庫條目派生密鑰和初始化向量?
當然,由表格處理的一些數據可能需要加密,例如,如果系統用於構建處理工資細節或其他任何形式的表單。所以我使用AESManaged
類來對這種數據進行對稱加密,然後進入我們的應用程序數據庫。
一切都很好,但是現在,在發佈之前,我可以對shared secret
和salt
進行操縱。
我最初的想法是由含有與Question
場的(再次,基於GUID)ID加密領域結合Form
的(基於GUID的)ID來進行(動態)shared secret
是答案:
FormId:QuestionId
我Salt
正在發生同樣的方式,只能用的GUID順序顛倒,即。
QuestionID:FormID.
我是新來的這東西,所以不知道這是一個明智的策略,或者如果我應該做一些其他方式?
由於它是加密,它是一個IV,而不是鹽。正如肯布羅德哈根指出的那樣,它應該是隨機生成的。而且,實際上沒有很多點加密,然後將其與加密密鑰一起存儲。您需要確定您的威脅模型是什麼,並且考慮到這一點,設計您的系統。 – 2011-03-08 07:13:01