zoukankan      html  css  js  c++  java
  • 在spring boot中使用jasypt对配置文件中的敏感字符串加密

    在spring boot的配置文件application.property(application.yml)文件中常常配置一些密码类的字符,如果用明文则很容易被盗用,可以使用jasypt在配置密码的地方使用加密后的字符串

    1.添加依赖

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

    2.下载jasypt-1.9.3.jar包

    3.将一下代码拷贝到一个新建的jasypt.bat文件中,并与jasypt-1.9.3.jar文件放在同一目录下:

    @echo off
    set/p input=待加密的明文字符串:
    set/p password=加密密匙(盐值):
    echo 加密中......
    java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input=%input% password=%password% algorithm=PBEWithMD5AndDES
    pause

    4.执行jasypt.bat文件,输入加密的明文如:666666,输入密匙如:123456

    5.在spring boot的配置文件application.yml中加入,密匙的配置,即告诉jasypt在程序中使用来解密的密匙,与上面在执行bat文件时输入的密匙一致:123456,:

    #jasypt的密匙配置
    jasypt:
    encryptor:
    password: 123456

    6.然后在配置文件application.yml中我们就可以使用ENC(Gzc/nmFd1uPQ6hfY7bcaHaI+XD3+547+)的方式在敏感字符的值的地方,如

    password: ENC(Gzc/nmFd1uPQ6hfY7bcaHaI+XD3+547+)//Gzc/nmFd1uPQ6hfY7bcaHaI+XD3+547+时之前bat生成的加密后的字符

    7.在代码中读取配置的password的值就是666666

    8.注:如果我们将jasypt的密匙像第5步那样配置到配置文件中时也不是安全的,实际使用时可以在运行jar包的时候传入配置的密匙参数,如:
    java jar xxx.jar --jasypt.encryptor.password=密匙(盐值)

    
    


  • 相关阅读:
    Oracle decode函数
    Flink笔记
    httpclient之put 方法(参数为json类型)
    XMLHTTPRequest的理解 及 SpringMvc请求和响应xml数据
    SQL获取本周,上周,本月,上月第一天和最后一天 注:本周从周一到周天
    Other
    Sql根据起止日期生成时间列表
    sql 在not in 子查询有null值情况下经常出现的陷阱
    sql 判断一个表的数据不在另一个表中
    查看系统触发器
  • 原文地址:https://www.cnblogs.com/maycpou/p/11646321.html
Copyright © 2011-2022 走看看