好了,我已經創建了一個使用JDBC MySQL的jar文件連接到我的服務器上的數據庫中的Java Swing應用程序。沒有真正的問題,一切都很好。然後我想到有人有機會進入該程序並查看源代碼。除了我擁有數據庫信息(網址,用戶名,密碼等)之外,沒有真正的大問題,並且這對於某人只是進入並獲取數據庫數據而言只是一張開放票。數據庫密碼
我的問題是什麼是這個一般的想法?如果知道有人可以進入並獲得信息(如果他們真的確定了),那麼您如何在源代碼中存儲密碼?
好了,我已經創建了一個使用JDBC MySQL的jar文件連接到我的服務器上的數據庫中的Java Swing應用程序。沒有真正的問題,一切都很好。然後我想到有人有機會進入該程序並查看源代碼。除了我擁有數據庫信息(網址,用戶名,密碼等)之外,沒有真正的大問題,並且這對於某人只是進入並獲取數據庫數據而言只是一張開放票。數據庫密碼
我的問題是什麼是這個一般的想法?如果知道有人可以進入並獲得信息(如果他們真的確定了),那麼您如何在源代碼中存儲密碼?
一種方法:您可以將這些安全信息存儲在一個加密的文件,然後解密該文件在運行時打開數據庫。
另一種方法:讓應用連接到您自己的網站並引入安全信息。
我喜歡方法#1,這看起來很簡單,因爲它只有一個密碼。方法#2似乎並沒有解決太多,對吧?我仍然需要一個密碼才能連接到我的服務器,這同樣糟糕。此外,數據庫託管在同一臺服務器上。 – LiverpoolFTW
+1兩個非常適用和安全的解決方案 –
是的,你是對的。 #2不是真正的解決方案。但是,您可以混合使用這兩種方法以獲得最大的安全性。 (即,在具有授權訪問的服務器上加密文件) – 2013-09-27 16:28:10
好消息!有人已經問過如何安全地存儲Java應用程序的密碼,所以你不需要等待答案!參見[如何通常在JAR文件中實現安全的數據庫連接?(http://stackoverflow.com/questions/3660154/how-are-secure-database-connections-usually-implemented-in-jar-files) – David
可以encrpyt您的憑證,它的安全,而不是讓它在平原text..You可以使用[jasypt(http://www.jasypt.org/) – nachokk
你不這樣做,你把它的地方更安全。 – chrylis