加密数据库登录信息 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;
}
}

有没有办法隐藏或加密URL,用户名和密码?我知道没有什么是绝对安全的,这只会让有恶意的人更难,但把信息留给任何人看似乎有点愚蠢。

谢谢

没有解决这个问题的好方法,这就是为什么你看不到那么多桌面程序连接到中央数据库(再也没有了(。程序中包含的任何凭据都是可见的。当然,你可以利用任何你想发明"安全方案"的时间,但它不会改变它只是不安全的事实。

您基本上有三种方法可以避免这些问题。使您的应用程序成为 Web 应用程序,以便用户无法访问代码,让您的用户使用自己的凭据设置自己的数据库(如果您希望所有用户能够在彼此之间交换信息,这显然无济于事(或者第三,编写后端层,以便桌面客户端不直接连接到数据库。然后,他们会向后端发送命令以执行数据库操作,您可以控制后端凭据以允许所需的连接。

相关内容

  • 没有找到相关文章

最新更新