开发者社区 > 云原生 > 微服务 > 正文

Nacos实现敏感信息加解密的解决方案有哪些?

Nacos实现敏感信息加解密的解决方案有哪些?

展开
收起
真的很搞笑 2024-07-09 15:03:47 79 0
1 条回答
写回答
取消 提交回答
  • 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);    }
    }
    

    ——参考链接

    2024-07-09 15:17:21
    赞同 17 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
Nacos架构&原理 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载