赞
踩
Druid的ConfigTools工具类使用了RSA非对称加密算法来进行密码加密。它通过生成公钥和私钥对来进行加密和解密操作。具体的加密原理如下:
- static {
- try {
- String[] keyPair = ConfigTools.genKeyPair(512);
- privateKey = keyPair[0];
- System.out.println("privateKey:" + privateKey);
- publicKey = keyPair[1];
- System.out.println("publicKey:" + publicKey);
- } catch (NoSuchAlgorithmException | NoSuchProviderException e) {
- e.printStackTrace();
- }
- }
- public static String encrypt(String plainText) throws Exception {
- String encrypt = ConfigTools.encrypt(privateKey, plainText);
- System.out.println("encrypt:" + encrypt);
- return encrypt;
- }
- public static String decrypt(String encryptText) throws Exception {
- String decrypt = ConfigTools.decrypt(publicKey, encryptText);
- System.out.println("decrypt:" + decrypt);
- return decrypt;
- }
说明:durid配置配置以后会自动进行解密,原理就是通过2中所示的方法进行解密。
- spring:
- datasource:
- username: root
- password: b6/R50FChU0r52ry8ioP0NJN59WOvPi3Hm0sIvdvL6jbXshPoXTYA2AIKledgApHNSbn7XaUOrMZ1bpsQwaC3g== #加密后的密码
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/jrlyt_sub?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
- type: com.alibaba.druid.pool.DruidDataSource
- druid:
- connectionProperties: config.decrypt=true;config.decrypt.key=${publicKey}; #公钥自动扫描
- filter:
- config:
- enabled: true #开启属性是扫描
- #加密公钥
- publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ2mWVq2XZ1IKrtlPwHiTITWZ5vOS0DkTxwPJydxARhR94LAU4K4nUs7LclI9Pa+gBiewC/Wp2DHj4c8Lsdq9vUCAwEAAQ==
注:别忘记导入依赖哦。
感谢小伙伴的观看,希望对你有帮助!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。