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;
    }

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM