2011-12-15 29 views
1

我有2個字段需要在SQL Server數據庫,密碼和ID號中進行加密。我正在考慮Rijndael,並且我已經獲得了加密/解密腳本,並將使用機器鍵作爲公鑰。什麼是存儲加密密鑰以用於2個不同應用程序的安全方法?

身份證號碼必須能夠從2個不同的應用程序解密,一個Web應用程序和一個控制檯應用程序,它們位於同一臺服務器上。

我應該對機器鍵採取什麼方法?我應該使用的工具,像這一個創建一個:

http://aspnetresources.com/tools/machineKey

或者我應該只是自動生成他們在2個應用程序的web.config文件爲:

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1" decryption="AES"/> 

更重要的是安全的?還是有更安全的方法?我讀了一些關於使用實際機器密鑰的DPAPI?

回答

0

首先不要加密密碼字段。加密密碼不好,有人獲得訪問密鑰可以解密所有的密碼,所以使用哈希。我推薦的用於散列的算法應該是bcrypt。

其次,對於ID的加密,使用AES 256位算法和存儲加密密鑰,使用使用使用DPAPI的cryptoutility組件的微軟解決方案(請參閱:https://msdn.microsoft.com/en-us/magazine/cc163884.aspx)。不要在代碼中存儲密鑰,任何有權訪問代碼的人都可以找到該密鑰,而且您也不會具有與誰訪問密鑰和更改相關的任何審計功能。還存儲進程內DLL是不好的,會帶來一些安全風險。

相關問題