我正在尋找一種方式來打開JDBC連接,而不用純文本指定我的數據庫登錄名和密碼,因爲應用程序將被分發並且任何Java反編譯器會揭示它們,允許用戶輕鬆訪問數據庫。Java - 在沒有在代碼中指定用戶名和密碼的情況下連接到MySQL
有什麼辦法來加密他們,或將他們存儲在別的地方?
我正在尋找一種方式來打開JDBC連接,而不用純文本指定我的數據庫登錄名和密碼,因爲應用程序將被分發並且任何Java反編譯器會揭示它們,允許用戶輕鬆訪問數據庫。Java - 在沒有在代碼中指定用戶名和密碼的情況下連接到MySQL
有什麼辦法來加密他們,或將他們存儲在別的地方?
看起來你想讓Android應用程序直接與數據庫對話?不要這樣做。這是一個重大的安全漏洞。無論您如何對憑證進行加密,都必須在程序執行期間在某處顯示純文本,並且任何使用調試器的人都可以看到。正確的方法是在您的Web服務上使用API並從客戶端調用該API。所有數據庫事務都應該發生在受信任的Intranet中。
你爲什麼要這樣做?一般來說,應用程序的商業方面會擁有此信息並連接到MySQL。在那裏,用戶無權訪問任何代碼。然後,您創建一個實際上可供公衆訪問的端點。在那裏你可以擔心將用戶名和密碼傳遞給業務邏輯,而這又可以直接訪問你的數據庫。
基本上,不要在服務器端的任何地方打開jdbc連接。它是一項安全措施。
與此相關,我建議使用通過加密(TLS/SSL)連接發送到Web服務器的JSON消息,然後Web服務器處理請求並向移動設備發送迴應(「成功!」,「John Johnson」 ,「42」等)。 – Izmaki