Java 加密数据库登录信息mySQL连接器
我是编程新手,有点迷路了。我正在构建一个桌面应用程序,启动后会提示用户登录,然后该应用程序会连接到我的站点mySQL数据库并进行验证。如果找到用户,则会出现第二个JFrame,用户现在可以使用该程序 我没有想到这一点,但现在我面临着有人反编译应用程序并访问mySQL连接详细信息的问题 这里是一个修剪版本的连接代码供参考Java 加密数据库登录信息mySQL连接器,java,mysql,eclipse,encryption,jdbc,Java,Mysql,Eclipse,Encryption,Jdbc,我是编程新手,有点迷路了。我正在构建一个桌面应用程序,启动后会提示用户登录,然后该应用程序会连接到我的站点mySQL数据库并进行验证。如果找到用户,则会出现第二个JFrame,用户现在可以使用该程序 我没有想到这一点,但现在我面临着有人反编译应用程序并访问mySQL连接详细信息的问题 这里是一个修剪版本的连接代码供参考 import java.sql.Connection; import java.sql.DriverManager; public class databaseConnecti
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、用户名和密码?我知道没有什么是绝对安全的,这只会让有恶意意图的人更难接受,但把信息留给任何人看似乎有点愚蠢
谢谢没有解决这个问题的好方法,这就是为什么你不再看到那么多桌面程序连接到中央数据库的原因。程序中包含的任何凭据都是可见的。当然,你可以利用任何时间发明“安全方案”,但这不会改变它只是不安全的事实
基本上有三种方法可以避免这些问题。让你的应用程序成为一个webapp,这样用户就不能访问代码,让你的用户用自己的凭据建立自己的数据库(如果你想让所有用户都能相互交换信息,这显然没有帮助),或者第三,写一个后端层,这样桌面客户端就不会直接连接到数据库。然后,它们将向后端发送命令以执行数据库操作,您可以控制后端凭据以允许连接到您想要的人。没有好的方法解决此问题,这就是为什么您不再看到有那么多桌面程序连接到中央数据库的原因。程序中包含的任何凭据都是可见的。当然,你可以利用任何时间发明“安全方案”,但这不会改变它只是不安全的事实
基本上有三种方法可以避免这些问题。让你的应用程序成为一个webapp,这样用户就不能访问代码,让你的用户用自己的凭据建立自己的数据库(如果你想让所有用户都能相互交换信息,这显然没有帮助),或者第三,写一个后端层,这样桌面客户端就不会直接连接到数据库。然后,他们将向后端发送命令以执行数据库操作,您可以控制后端凭据以允许连接到您想要的人。这有点。。。很难,你可以使用模糊处理。。或者简单地开发一个服务器端应用程序,它可以直接连接到数据库并对每个请求的用户进行身份验证。最好选择后者,因为您永远无法信任最终用户。这有点。。。很难,你可以使用模糊处理。。或者简单地开发一个服务器端应用程序,它可以直接连接到数据库并对每个请求的用户进行身份验证。因为您永远不能信任最终用户,所以最好选择后者。