为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕码人8056858 2023-07-19 14:57:57
我是编程新手,有点迷失。我正在构建一个桌面应用程序,启动后提示用户登录,然后该应用程序连接到我的站点 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个赞

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

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


查看完整回答
反对 回复 2023-07-19
  • 1 回答
  • 0 关注
  • 67 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信