我正在使用數據庫(mysql)的桌面應用程序(讓我們稱之爲應用程序)。 更多應用的用戶共享一個數據庫用戶。 示例:John和Mike應用程序用戶以「dbuser」等方式連接到數據庫如何在桌面應用程序中有效保存數據庫密碼?
問題是:如何有效地爲DB用戶保存密碼?(應用程序用戶的密碼存儲在數據庫中)。
可能的解決方案我發現: 1.在代碼中 - 這實際上很愚蠢:D 2.在文本INI文件 - 易於閱讀! 3.在extern文件中加密 - 很好,但需要訪問應用程序。
我正在使用數據庫(mysql)的桌面應用程序(讓我們稱之爲應用程序)。 更多應用的用戶共享一個數據庫用戶。 示例:John和Mike應用程序用戶以「dbuser」等方式連接到數據庫如何在桌面應用程序中有效保存數據庫密碼?
問題是:如何有效地爲DB用戶保存密碼?(應用程序用戶的密碼存儲在數據庫中)。
可能的解決方案我發現: 1.在代碼中 - 這實際上很愚蠢:D 2.在文本INI文件 - 易於閱讀! 3.在extern文件中加密 - 很好,但需要訪問應用程序。
(應用程序用戶的密碼存儲在數據庫中)。
使用SHA1/SHA2算法加密存儲的密碼。這是最常用的技術。 我不是.NET開發人員,但我很確定他們提供的功能。
當用戶登錄時,再次加密給定的密碼並將其與存儲的密碼進行比較。如果它們相同,請讓用戶登錄。
您可以將它以加密格式存儲在INI文件中。這是恕我直言的最佳方式。我以加密格式將連接字符串存儲在.NET應用程序的App.config中。
編輯:
要編輯連接字符串,我使用另一個配置值App.Config中的文件的AppSettings CSEncryption = 「Y | N | R」
如果是Y,連接字符串被加密,解密並使用它。
如果是N,連接字符串未加密,直接使用。
如果是R,連接字符串未加密,則對其進行加密並更新連接字符串,並在App.Config中將CSEncryption設置爲'Y'。
以及您如何編輯加密文件?當等移植到另一個數據庫主機名? – Michal 2010-01-28 14:57:14
最重要的是,您應該始終使用安全通道(SSL)與服務器進行通信,否則任何人都可以嗅探某些數據包並找出密碼 – rsilva4 2010-01-28 15:01:25
+1至rsilva。如果數據庫可通過網絡訪問,則使用SSL與其進行通信是一個不錯的主意 – dgraziotin 2010-01-28 15:11:50
你如何編輯呢? – Michal 2010-01-28 15:02:04
你只需覆蓋它們。例如查看任何動態網站:如果您想更改密碼,則必須提供舊密碼,然後編寫新密碼。系統對給定的舊密碼進行加密,檢查是否與實際存儲的密碼相同,然後加密新密碼並覆蓋存儲的密碼。 – dgraziotin 2010-01-28 15:08:13
我明白了。好吧,我給你舉例。 我決定更改我的APP使用的數據庫服務器的位置(IP)。我應該通過應用程序GUI來做到這一點,或者只是從應用程序加載數據中手動編輯一些外部文件? – Michal 2010-01-28 15:19:25