Nacos实现敏感信息加解密的解决方案有哪些?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
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);    }
}
——参考链接。