1、引入依赖使用jasypt。
<!-- 加密工具 -->
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<!-- 使用单元测试生成密钥 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
2、配置yml里面的加密算法
jasypt:
encryptor:
#自定义 加密因子。随便写
password: ALK9382LDF234UIJ79GJ0F5HD
# 官方默认的加密算法是 PBEWITHHMACSHA512ANDAES_256 但是如果用的是jdk1.8 不支持需要改成 PBEWithMD5AndDES
algorithm: PBEWithMD5AndDES
# 配置格式(不写默认ENC)
property:
prefix: "ENC["
suffix: "]"
3、生成密文
import org.jasypt.encryption.StringEncryptor;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;
@SpringBootTest
public class Encrypt {
@Resource
private StringEncryptor stringEncryptor;
@Test
public void encryptPwd() {
String user = stringEncryptor.encrypt("root");
System.out.println("user: " + user);
String pass = stringEncryptor.encrypt("135789");
System.out.println("pass: " + pass);
}
}
4、nacos配置修改
spring:
datasource:
druid:
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ENC(DzmdJtfNcBngn0Ya+UHVOUJ0fSuFMO6n)
password: ENC(sxEwCbBiaY1JNBUjr8RHKgdqB6ET9avktVNsvSe4Pa4=)
5、启动类增加注解 @EnableEncryptableProperties
@EnableEncryptableProperties
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(BusinessApplication.class, args); }
}
——参考链接。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。