2011-05-29 144 views
3

我正在查看類似的問題,但我沒有找到正確的答案,我認爲必須有一些安全的解決方案。哪裏存儲數據庫密碼安全在Java桌面應用程序

我有客戶端 - 服務器應用程序。客戶端連接到服務器上的中央MySQL數據庫。我的問題是如何在客戶端桌面應用程序上保護存儲數據庫密碼。現在我將它以隱藏形式存儲在java屬性文件中。但屬性文件是可讀的,並且在反編譯我的應用程序之後,每個人都可以看到我使用哪個crypt函數對密碼進行編碼,並且可以輕鬆獲取密碼。所以我認爲如何在客戶端應用程序中安全地存儲數據庫密碼是沒有辦法的,對嗎?

解決方案可以是客戶端應用程序將與服務器握手以獲取數據庫密碼,是否有任何規則或模式如何執行此握手?

+1

我找到了這個問題的詳盡答案:http://stackoverflow.com/questions/442862/how-can-i-protect-mysql-username-and-password-from-decompiling/442872#442872 – HPCS 2011-11-20 18:10:54

回答

2

請看OAuth進行授權。

+0

我不'看看這有助於保護數據庫密碼?您需要在服務器上安裝一個OAuth Web服務來爲驗證的客戶端提供密碼 - 您是否知道這樣的事情? – 2011-05-29 11:06:02

+0

不,但你可以用正確的框架構建一個。 – 2011-05-29 20:02:20

+0

我同意Simon G.,OAuth是一個很好的解決方案,因爲它只在本地客戶機上存儲令牌。然而,比這更基礎的是,我強烈建議在客戶端和數據庫之間放置一個應用服務器。將數據庫暴露在開放端口上的互聯網並不是一個好主意,它可能比在你的jar中存儲密碼的威脅更大。如果您仍然想直接與數據庫交談,則可以配置您的應用程序服務器以將授權用戶對數據庫的請求進行代理。再次,我會使用OAuth進行身份驗證。 – gwood 2011-06-06 20:16:44

相關問題