版权声明: https://blog.csdn.net/Dongguabai/article/details/81114569
主要参考博客:https://blog.csdn.net/sz85850597/article/details/80396321
主要使用的jasypt-spring-boot这个开源工具。
引入maven依赖

配置加解密Bean
public class EncryptionPropertyConfig { @Bean(name = "encryptablePropertyResolver") public EncryptablePropertyResolver encryptablePropertyResolver() { return new EncryptionPropertyResolver(); class EncryptionPropertyResolver implements EncryptablePropertyResolver { public String resolvePropertyValue(String value) { if (StringUtils.isBlank(value)) { if (value.startsWith("DES@")) { return resolveDESValue(value.substring(4)); private String resolveDESValue(String value) { return DesUtil.decrypt(value, DesUtil.KEY);
编写加解密工具类
之前在github上找到的工具类,抱歉之前没留下原地址。
@NoArgsConstructor(access = AccessLevel.PRIVATE) public final static String KEY = "ScAKC0XhadTHT3Al0QIDAQAB"; public static String encrypt(String data,String key) { String encryptedData = null; SecureRandom sr = new SecureRandom(); DESKeySpec deskey = new DESKeySpec(key.getBytes()); // 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey secretKey = keyFactory.generateSecret(deskey); Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, secretKey, sr); encryptedData = new sun.misc.BASE64Encoder().encode(cipher.doFinal(data.getBytes())); throw new RuntimeException("加密错误,错误信息:", e); public static String decrypt(String cryptData,String key) { String decryptedData = null; SecureRandom sr = new SecureRandom(); DESKeySpec deskey = new DESKeySpec(key.getBytes()); // 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey secretKey = keyFactory.generateSecret(deskey); Cipher cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, secretKey, sr); decryptedData = new String(cipher.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(cryptData))); throw new RuntimeException("解密错误,错误信息:", e); public static void main(String[] args) { System.out.println("url::"+encrypt("jdbc:oracle:thin:@127.0.0.1:1521:xe",KEY)); System.out.println("username::"+encrypt("admin",KEY)); System.out.println("password::"+encrypt("admin",KEY));
工具类中的main方法执行结果为:

修改properties文件

运行项目测试通过!
|