zoukankan      html  css  js  c++  java
  • springboot中给属性文件内容加密(application.properties,application.yml)

    1.加密所有用的技术 jasypt

      目的:为项目增加加密功能,为安全多一层保障

      原理:在启动项目读取配置文件时,给加密的属性解密

    2.实现

    引入依赖

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

    配置,在属性文件中加入,之后会根据盐值解密

    jasypt.encryptor.password=盐值

    3.手动将需要加密的属性加密

    我这里实在springboot单元测试中运行

    这里的盐值就是写在属性文件中的盐值

    @Test
    public void getPass() {
    BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
    textEncryptor.setPassword("yangzhuxian@test");
    //加密
    String host = textEncryptor.encrypt("yang***aa**.***");
    String port = textEncryptor.encrypt("6000");
    System.out.println("加密后"+host);
    System.out.println("加密后"+port);
    //解密
    String decrypt = textEncryptor.decrypt(host);
    System.out.println("解密后"+decrypt);
    }

    结果:

    注意:每次加密的值都是不一样的,解密后都是一样的

     4.将加密后的结果写入属性文件(完成)

    ENC():这是jasypt设置默认的标识,作用是在读取配置文件时,判断哪些属性需要解密后读取。

    ENC()是可以更改的,这里不演示,有需要的可以研究一下jasypt的属性配置

     5.补充

    到这里肯定会有人觉得将盐值放在属性文件里面是不安全的。

    这里有个解决方案

      将盐值作为项目启动时的参数传入

     

     项目部署时也可以将盐值传入

     

  • 相关阅读:
    每天学习算法二
    每天学习算法 一
    数据量基础
    SQL server数据库创建代码,filegroup文件组修改,
    SQL学习笔记之 数据库基础(一)
    Oracle的查询-条件表达式
    Oracle的查询-单行查询
    Oracle 的查询-scott用户介绍
    Oracle的基本操作-序列的使用
    Oracle的基本操作-修改表结构、数据的增删改查
  • 原文地址:https://www.cnblogs.com/yangzhuxian/p/14339604.html
Copyright © 2011-2022 走看看