我確定已經有很多討論,但如何在應用程序中存儲密碼? (我的意思不是用戶密碼存儲在數據庫中的表中,而是用於建立連接字符串的密碼)如何存儲數據庫密碼
我見過這樣的建議,例如將它存儲在一個平面文件(如xml文件)中,然後讀取它+在運行時解密它。如果這個應用程序在服務器上運行,這是一個非常好的選擇,但是如果應用程序將被部署到最終用戶的電腦上呢?即平面文件將被複制到用戶的電腦。這仍然是一個好習慣嗎? (我的直覺是'不')
我知道SecurityString的存在,但是我也在一篇文章中看到SecurityString也可以很容易地分解。
使用Windows 7附帶的密碼保險箱是一個好主意嗎?有沒有什麼好的例子,以編程方式使用它?我在msdn中看到過一個例子,但是首先它被標記爲'windows 8',其次當我下載文件並在visual studio 2012 EXPRESS中打開解決方案時,它未能打開。
任何建議,歡迎...非常感謝。
--update--
比方說,應用程序將在個人電腦上的Windows域內屈指可數運行。 (1)啓動時,應用程序將執行LDAP認證(活動目錄)。只有在認證成功後,應用程序纔會繼續執行,(2)應用程序可以連接到數據庫,使用用戶輸入查詢數據庫,這是db passwd進入播放以建立連接字符串的位置(不,這不是SQL SERVER數據庫,所以我不認爲使用Windows身份驗證的選項是可行的,除非使用商業插件)。
db駐留在同一個域中,並且已經設置爲允許一定範圍的IP地址,並且已啓用SSL。總之,在這個意義上它是相當安全的。唯一不安全的是如何存儲應用程序的db passwd。
引起我注意的是Mysql Workbench。它將保存數據庫連接,包括密碼 - 存儲在密碼保管庫中。這是mysql自己實現的一個密碼庫,我很好奇它是如何完成的。
你在使用什麼數據庫,它託管在哪裏?它是否與客戶端位於同一個Windows域中? – Jodrell
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –
可能的重複[如何安全地存儲數據庫登錄名和密碼在C#應用程序?](http://stackoverflow.com/questions/11685206/how-do-i-safely-store-database-login-and-password -in-ac-sharp-application) – Barmar