猿问

加密数据库登录信息mySQL连接器

我是编程新手,有点迷失。我正在构建一个桌面应用程序,启动后提示用户登录,然后该应用程序连接到我的站点 mySQL 数据库并验证它,如果找到用户,则会出现第二个 JFrame,用户现在可以使用程序。


我没有想到这一点,但现在我面临着有人反编译应用程序并访问 mySQL 连接详细信息的问题。


这是连接代码的精简版本以供参考。


import java.sql.Connection;

import java.sql.DriverManager;


public class databaseConnection {


public static void main(String[] args) throws Exception {

    getConnection();

}


public static Connection getConnection() throws Exception {

    try {

        String driver = "com.mysql.jdbc.Driver";

        String url = "jdbc:mysql://localhost:3306/dbase";

        String username = "root";

        String password = "root";

        Class.forName(driver);


        Connection conn = DriverManager.getConnection(url, 

 username, password);

        System.out.println("Connected.");

        return conn;

    } catch (Exception e) {


        System.out.println(e);

    }


    return null;


}

}

有没有办法隐藏或加密网址、用户名和密码?我知道没有什么是绝对安全的,这只会让那些有恶意的人变得更加困难,但直接将信息留给任何人看似乎有点愚蠢。


慕码人8056858
浏览 86回答 1
1回答

九州编程

没有好的方法可以解决此问题,这就是为什么您看不到许多桌面程序连接到中央数据库(不再)的原因。您的程序中包含的任何凭据都是可见的。当然,您可以使用任意数量的时间来发明“安全方案”,但这不会改变它不安全的事实。基本上可以通过三种方法来避免这些问题。将您的应用程序设置为网络应用程序,以便用户无法访问代码,让您的用户使用自己的凭据设置自己的数据库(如果您希望所有用户都能够相互交换信息,这显然没有帮助)或第三,编写一个后端层,这样桌面客户端就不会直接连接到数据库。然后,他们会将命令发送到后端以执行数据库操作,并且您可以控制后端凭据以允许连接到您想要的人。
随时随地看视频慕课网APP

相关分类

Java
我要回答