您可以在Windows註冊表中存儲加密密碼嗎?在Windows註冊表中存儲加密數據
我必須找到一種方法來存儲連接字符串(它將包含一個密碼到Microsoft SQL Server數據庫)在本地計算機的註冊表。
我在這裏(和其他地方)看到了一些關於加密數據的建議,然後將它存儲在註冊表中,並做相反的解密(從註冊表讀取值,然後使用應用程序/程序來解密值),但註冊表可以存儲所有可能被128位加密使用的字符(基本上它可以存儲非字母數字字符)。
您可以在Windows註冊表中存儲加密密碼嗎?在Windows註冊表中存儲加密數據
我必須找到一種方法來存儲連接字符串(它將包含一個密碼到Microsoft SQL Server數據庫)在本地計算機的註冊表。
我在這裏(和其他地方)看到了一些關於加密數據的建議,然後將它存儲在註冊表中,並做相反的解密(從註冊表讀取值,然後使用應用程序/程序來解密值),但註冊表可以存儲所有可能被128位加密使用的字符(基本上它可以存儲非字母數字字符)。
有很多資源在網絡上,以幫助您與此有關。例如,您可以使用AES來加密和解密一個字符串。我找到了一個很好的例子AES Encryption, Dream in Code。
微軟也談理解什麼來保護自己,甚至一些想法。
Protecting Connection Information
從我通過網絡快速瀏覽,我建議建立,你必須作爲嵌入資源的自定義配置,所以希望沒有人會訪問,然後引用它在你的config文件中像下面。這個配置
<?xml version='1.0' encoding='utf-8'?>
<configuration>
<connectionStrings configSource="connections.config"/>
</configuration>
的更多信息,請訪問:Connection Strings and Configuration Files
這樣一來,你就不會處理人與有限的電腦上網,就像在一個業務領域,抱怨他需要管理員安裝程序:)
希望這有助於。
快樂編碼!
您可以使用不需要密鑰的CryptProtectData進行加密。然後使用RegSetValueEx和數據類型REG_BINARY將其保存在註冊表中。
http://msdn.microsoft.com/en-us/library/microsoft.win32.registryvaluekind%28v=vs.110%29.aspx – SLaks
此外,加密不會對你有任何好處,除非你有一個安全的放置加密密鑰的地方。你需要弄清楚你想要抵禦的是什麼。請參閱http://blogs.msdn.com/b/ericlippert/archive/2011/09/27/keep-it-secret-keep-it-safe.aspx – SLaks