Navicat导出连接,明文密码

导出连接

点击 navicat 菜单栏文件导出连接,勾选导出密码。得到 .ncx 文件

编写解析代码,解密

记得修改文件路径

    @Test
    void test48() throws DocumentException {
        AES aes = new AES("CBC", "PKCS7Padding", "libcckeylibcckey".getBytes(), "libcciv libcciv ".getBytes());

        //整体参考:http://t.zoukankan.com/lori-p-15686959.html
        //指定导出文件
        FileReader fileReader = new FileReader("C:\\Users\\xingz\\Desktop\\connections.ncx");
        String result = fileReader.readString();
        System.out.println("==================获取文件内容==================");
        System.out.println(result);
        Document document = DocumentHelper.parseText(result);
        Element root = document.getRootElement();
        final Iterator<Element> elementIterator = root.elementIterator("Connection");

        while (elementIterator.hasNext()) {
            Element connection = elementIterator.next();

            System.out.println("==================获取导出参数==================");
            String connectionName = connection.attributeValue("ConnectionName");
            String connType = connection.attributeValue("ConnType");
            String host = connection.attributeValue("Host");
            String port = connection.attributeValue("Port");
            String userName = connection.attributeValue("UserName");
            String encryPassword = connection.attributeValue("Password");
            String database = connection.attributeValue("Database");
            String sshHost = connection.attributeValue("SSH_Host");
            String sshPort = connection.attributeValue("SSH_Port");
            String sshUserName = connection.attributeValue("SSH_UserName");
            String sshPassword = connection.attributeValue("SSH_Password");

            System.out.println("1.------->连接名称:" + connectionName);
            System.out.println("2.------->数据库类型:" + connType);
            System.out.println("3.------->主机(IP):" + host);
            System.out.println("4.------->端口:" + port);
            System.out.println("5.------->用户名:" + userName);
            //解密
            //参考https://the-x.cn/cryptography/Aes.aspx

            System.out.println("6.------->密码:" + aes.decryptStr(encryPassword));
            System.out.println("7.------->数据库名称:" + database);
            System.out.println("8.------->SSH主机:" + sshHost);
            System.out.println("8.------->SSH端口:" + sshPort);
            System.out.println("8.------->SSH用户:" + sshUserName);
            System.out.println("8.------->SSH密码:" + (StrUtil.isBlank(sshPassword) ? "" : aes.decryptStr(sshPassword)));
            System.out.println("==============================================");
            System.out.println();
            System.out.println();
            System.out.println();
        }


    }

依赖maven

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.3</version>
        </dependency>
 
        <!-- 由于IOS等移动端对AES加密有要求,必须为PKCS7Padding模式,但JDK本身并不提供这种模式, 
         因此 
          想要支持必须做一些工作。首先引入bc库: -->
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15to18</artifactId>
            <version>1.68</version>
        </dependency>
 
        <!-- https://mvnrepository.com/artifact/org.dom4j/dom4j -->
        <dependency>
            <groupId>org.dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>2.1.3</version>
        </dependency>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值