springboot中使用jasypt對配置信息進行加密

jasypt是java中流行的開源加解密工具包

 

1、springboot項目中,引入依賴

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.1</version>
</dependency>

2、在application.yml中配置jasypt.encryptor.password=yoursalt ,例如

jasypt:
  encryptor:
    password: turing

 

如果不想將jasypt的加密鹽值直接配置在配置文件中,則也可改爲在啓動jar命令行中指定程序參數或jvm參數
#啓動springboot的jar包,指定程序參數
java -jar xxx.jar --jasypt.encryptor.password=turing

#啓動springboot的jar包,指定JVM參數
java  -Djasypt.encryptor.password=turing -jar xxx.jar 

3、命令行加解密

#直接使用命令對明文進行加密
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="123456" password=turing algorithm=PBEWithMD5AndDES
#直接使用命令對密文進行解密
java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="KCQCruXa2BN+StcKVPlkAg==" password=turing algorithm=PBEWithMD5AndDES

 

4、 在項目業務代碼中使用jasypt

@autowired 注入StringEncryptor  bean

package com.tingcream.springmybatis2;

import org.jasypt.encryption.StringEncryptor;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;


@RunWith(SpringRunner.class)
@SpringBootTest
public class JasyptTest {

@Autowired
private StringEncryptor stringEncryptor;


@Test
public void encrypt() {
String text ="123456";
String s1= stringEncryptor.encrypt(text);
System.out.println("加密後得到密文爲:"+s1);
String s2= stringEncryptor.decrypt(s1);
System.out.println("解密後得到原文爲:"+s2);

/*
 * 注意: 每次使用stringEncryptor加密同樣的明文,所得到的密碼都可能不一樣
 * 加密後得到密文爲:LTsP+Ixe26vAZYnVd28Lag==
解密後得到原文爲:123456

加密後得到密文爲:EeTv7ggGS3SVEICVd1TVdA==
解密後得到原文爲:123456

加密後得到密文爲:L0gcXucNVewXZSsFNrmVhw==
解密後得到原文爲:123456
 * 
 * */

}  
}

5、application.yml中配置敏感信息

spring: 
  datasource: 
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      username: root
      password: ENC(KCQCruXa2BN+StcKVPlkAg==)  #注意jasypt的密文需要使用ENC括起來

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章