SpringBoot配置文件敏感信息加密 jasypt加密

以数据用户名和数据库密码加密为例

第一步.导入pom依赖


<!-- jasypt加密 -->

<dependency>

<groupId>com.github.ulisesbocchio</groupId>

<artifactId>jasypt-spring-boot-starter</artifactId>

<version>2.1.0</version>

</dependency>

第二步.配置文件

```java

jasypt:

  encryptor:

    password: ${a_pass:654321}  #获取系统环境变量${}

jasypt:

  encryptor:

    password: ${a_pass:654321}  #获取系统环境变量${}

第三步.使用工具类

public class JasyptUtil {

public static void main(String[] args) {

      //加密: MMM752WWW257,secritery为密码

    String url = encyptPwd("MMM752WWW257", "jdbc:mysql://127.0.0.1:3306/einvoice-medical?useUnicode=true&characterEncoding=utf-8&useSSL=false");

    String name = encyptPwd("MMM752WWW257", "root");

    String pass = encyptPwd("MMM752WWW257", "123456");

    System.out.println("ENC("+url+")");

    System.out.println("ENC("+name+")");

    System.out.println("ENC("+pass+")");

    //解密: MMM752WWW257为盐值,使用加密后的密码: ENC(EVVBR9iTfxRUtsZZW7FbPPUoBhqd0Zr4)

    System.out.println(decyptPwd("MMM752WWW257",url));

    System.out.println(decyptPwd("MMM752WWW257",name));

    System.out.println(decyptPwd("MMM752WWW257",pass));

}

// 加密

public static String encyptPwd(String password,String value) {

PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();

encryptor.setConfig(cryptor(password));

String encrypt = encryptor.encrypt(value);

return encrypt;

}

// 解密

public static String decyptPwd(String password,String value) {

PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();

encryptor.setConfig(cryptor(password));

String decrypt = encryptor.decrypt(value);

return decrypt;

}

private static SimpleStringPBEConfig cryptor(String password) {

SimpleStringPBEConfig config = new SimpleStringPBEConfig();

config.setPassword(password);

config.setAlgorithm("PBEWithMD5AndDES");

config.setKeyObtentionIterations("1000");

config.setPoolSize("1");

config.setProviderName("SunJCE");

config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");

config.setStringOutputType("base64");

return config;

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。