• Druid密码加密


    pom里引用:

    <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>1.1.10</version>
    </dependency>

    加密解密示例:

    import com.alibaba.druid.filter.config.ConfigTools;
    
    public class Druid密码加密解密 {
    
        public static void main(String[] args) throws Exception {
            //第一种加密方法
            //到druid-1.1.10.jar目录下打开cmd窗口,执行以下命令为密码ZHUwen12加密,随后获得公钥public key
            //java -cp druid-1.1.10.jar com.alibaba.druid.filter.config.ConfigTools ZHUwen12
            
            //第一种解密方法
            String publicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALESqBkd/4Kne+NVwVLirUBsXKTYlsOJjgNQ7bcwzbPn0c0Wv6h+KXPHbwkOJiuz6b4H+GBcB+HuELwiTrTB4dsCAwEAAQ==";
            String encryptPassword = "C3Kcc9g8m/xel7VgakJKXFJcCl7IiOc65r0o5hpi0qP4LjQ46s82T1UeRHfwzZfP0QC4GVpv7j3H5YfxckBnqg==";
            String decryptPassword = ConfigTools.decrypt(publicKey, encryptPassword);
            System.out.println("decryptPassword==="+decryptPassword);
            
            //第二种加密方法
            String pwd = "ZHUwen12";
            String encryptPwd = ConfigTools.encrypt(pwd);
            System.out.println("加密后:"+encryptPwd);
            
            //第二种解密方法
            String decryptPwd = ConfigTools.decrypt(encryptPwd);
            System.out.println("解密后:"+decryptPwd);
    
        }
    
    }

    在atomikos里使用密码加密时,解密代码这样写:

    @Primary
        @Bean(name = "dataSource1")
        public DataSource testDataSource(DBConfig1 testConfig) throws SQLException {
            //Atomikos统一管理分布式事务
            AtomikosDataSourceBean xaDataSource = new AtomikosDataSourceBean();
    
            //用druidXADataSource方式或者上面的Properties方式都可以
            DruidXADataSource druidXADataSource = new DruidXADataSource();
            druidXADataSource.setConnectionProperties("config.decrypt=true;config.decrypt.key="+testConfig.getPublicKey());
            druidXADataSource.setFilters("config,stat");
            druidXADataSource.setUrl(testConfig.getUrl());
            druidXADataSource.setUsername(testConfig.getUsername());
            druidXADataSource.setPassword(testConfig.getPassword());
            
            xaDataSource.setUniqueResourceName("oracle1");
            xaDataSource.setXaDataSource(druidXADataSource);
            xaDataSource.setXaDataSourceClassName("com.alibaba.druid.pool.xa.DruidXADataSource");
            xaDataSource.setMaxLifetime(testConfig.getMaxLifetime());
            xaDataSource.setMinPoolSize(testConfig.getMinPoolSize());
            xaDataSource.setMaxPoolSize(testConfig.getMaxPoolSize());
            xaDataSource.setBorrowConnectionTimeout(testConfig.getBorrowConnectionTimeout());
            xaDataSource.setLoginTimeout(testConfig.getLoginTimeout());
            xaDataSource.setMaintenanceInterval(testConfig.getMaintenanceInterval());
            xaDataSource.setMaxIdleTime(testConfig.getMaxIdleTime());
            xaDataSource.setTestQuery(testConfig.getTestQuery());
            
            LOG.info("分布式事物dataSource1实例化成功");
            return xaDataSource;
        }

    .

  • 相关阅读:
    获得音视频信息
    stf-多设备管理平台搭建
    接口用例设计
    阿里云Ubuntu服务器搭建SVN
    Jenkins首次启动卡在加载页面
    初使Jenkins构建Python项目
    MongoDB使用python脚本写入数据
    python re操作
    使用Python脚本写入MongoDB数据
    chromedriver与chrome版本对应表及下载地址
  • 原文地址:https://www.cnblogs.com/zhuwenjoyce/p/10350707.html
Copyright © 2020-2023  润新知