我是编程新手,有点迷失。我正在构建一个桌面应用程序,启动后提示用户登录,然后该应用程序连接到我的站点 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;}}有没有办法隐藏或加密网址、用户名和密码?我知道没有什么是绝对安全的,这只会让那些有恶意的人变得更加困难,但直接将信息留给任何人看似乎有点愚蠢。
1 回答
九州编程
TA贡献1785条经验 获得超4个赞
没有好的方法可以解决此问题,这就是为什么您看不到许多桌面程序连接到中央数据库(不再)的原因。您的程序中包含的任何凭据都是可见的。当然,您可以使用任意数量的时间来发明“安全方案”,但这不会改变它不安全的事实。
基本上可以通过三种方法来避免这些问题。将您的应用程序设置为网络应用程序,以便用户无法访问代码,让您的用户使用自己的凭据设置自己的数据库(如果您希望所有用户都能够相互交换信息,这显然没有帮助)或第三,编写一个后端层,这样桌面客户端就不会直接连接到数据库。然后,他们会将命令发送到后端以执行数据库操作,并且您可以控制后端凭据以允许连接到您想要的人。
添加回答
举报
0/150
提交
取消