1 pom依赖
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId>
</dependency>
2 写个工具类,用于生成公钥私钥,对数据进行加密解密等
import com.alibaba.druid.filter.config.ConfigTools;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;public class DruidEncryptUtil {private static String publicKey;private static String privateKey;static {try {String[] keyPair = ConfigTools.genKeyPair(512);privateKey = keyPair[0];System.out.println("私钥:" + privateKey);System.out.println();publicKey = keyPair[1];System.out.println("公钥:" + publicKey);System.out.println();} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (NoSuchProviderException e) {e.printStackTrace();}}public static String encrypt(String plainText) throws Exception {String encrypt = ConfigTools.encrypt(privateKey, plainText);return encrypt;}public static String decrypt(String encryptText) throws Exception {String decrypt = ConfigTools.decrypt(publicKey, encryptText);return decrypt;}public static void main(String[] args) throws Exception {String encrypt = encrypt("123456");System.out.println("原文数据加密后:" + encrypt);System.out.println();String decrypt = decrypt(encrypt);System.out.println("解密后的原文:" + decrypt);}}
3 修改yml文件,先用上面的工具类,把需要的数据加密,并复制公钥到yml中,关注注释:改动
spring:application:name: demo-shopdatasource:url: jdbc:mysql://localhost:3306/mydb-1?useUnicode=true&characterEncoding=utf-8username: root# 改动1password: byOoGNulf855VLIb5RoFJHGF2ICpNMBXqmUDKMOXr8AZSqgVALhAo9SPdNjaSAFLKq0XIRGOtDkt9B48H2t1FQ==type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverdruid:# 改动2connectionProperties: config.decrypt=true;config.decrypt.key=${publicKey};# 改动3,启用ConfigFilterfilter:config:enabled: true# 改动4
publicKey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJCA44FIppHTdSwaxY5NYWJDpTbXhBK1fWIsRTzWgQuJO4O5HKvyJpWwHP9luMf4b2WeGDuvtWuC1+FxVY94tNECAwEAAQ==