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

标签 java mysql eclipse encryption jdbc

我是编程新手,有点迷茫。我正在构建一个桌面应用程序,该应用程序在启动时提示用户登录,然后该应用程序连接到我的网站 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、用户名和密码?我明白没有什么是绝对安全的,这只会让怀有恶意的人更难一点,但直接把信息留给任何人看似乎有点愚蠢。

谢谢

最佳答案

没有解决此问题的好方法,这就是为什么您看不到那么多桌面程序(不再)连接到中央数据库的原因。您的程序中包含的任何凭据都是可见的。当然,您可以使用任意多的时间来发明“安全方案”,但这不会改变它只是不安全的事实。

您基本上可以通过三种方式来避免这些问题。让你的应用程序成为一个网络应用程序,这样用户就无法访问代码,让你的用户使用自己的凭据设置自己的数据库(如果你希望所有用户能够相互交换信息,这显然无济于事)或者第三,编写一个后端层,使桌面客户端不直接连接到数据库。然后他们会向后端发送命令以执行数据库操作,您可以控制后端凭据以允许连接到您想要的人。

关于java - 加密数据库登录信息mySQL连接器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57848882/

相关文章:

java - 编码解码冒险

java - beans.xml 上的文件过早结束

php - 没有连接的 EAV 表选择

在 Eclipse 项目中放置和链接外部 JAR 的 Java 最佳实践?

java - Jenkins 可以构建 Eclipse 项目吗?

java - 为什么 Thread.interrupt() 不能中断试图获取锁的线程

mysql - 通过迁移向导将 QODBC 连接到 MySQL 时出错

php - 在单列中存储 IP 地址

java - 使用 Repast Simphony 2.0 Eclipse 在关闭透视图和关闭应用程序后不再打开

java - JPA,Spring映射多个实体