• SpringBoot项目使用jasypt加解密


    Jasypt 是一个 Java 库,它允许开发者以最小的努力为他 / 她的项目添加基本的加密功能,而且不需要对密码学的工作原理有深刻的了解。

    地址:https://github.com/jasypt/jasypt

    一、添加依赖

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

    二、生成加密数据

    1.根据 jasypt-spring-boot-starter 的父级POM, 找到jasypt的依赖路径,我这里看到如下:

    <dependency>
        <groupId>org.jasypt</groupId>
        <artifactId>jasypt</artifactId>
        <version>${jasypt.version}</version>
    </dependency>
    

    2.然后通过上面的依赖路径,在本地Maven仓库中找到jasypt的jar包,通过CMD执行下面操作:

    java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="abc123" password=test algorithm=PBEWithMD5AndDES
    

    3.结果如下:

    E:\repository\org\jasypt\jasypt\1.9.2>java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="abc123" password=test algorithm=PBEWithMD5AndDES
    
    ----ENVIRONMENT-----------------
    
    Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08
    
    
    
    ----ARGUMENTS-------------------
    
    algorithm: PBEWithMD5AndDES
    input: abc123
    password: test
    
    
    
    ----OUTPUT----------------------
    
    Kh4BPjpQIt00Af/s+1Fx8w==
    

    说明:

    • algorithm: 加密算法

    • input:加密的内容

    • password: 盐值(后面解密也需使用这个盐值进行解密)

    • OUTPUT: 加密之后的内容

    • org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI 为加密使用的类

    三、对加密数据进行解密

    同样还是使用jasypt的jar包,在CMD中执行操作如下:

    java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="Kh4BPjpQIt00Af/s+1Fx8w==" password=test algorithm=PBEWithMD5AndDES
    

    结果如下:

    E:\repository\org\jasypt\jasypt\1.9.2>java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="Kh4BPjpQIt00Af/s+1Fx8w==" password=test algorithm=PBEWithMD5AndDES
    
    ----ENVIRONMENT-----------------
    
    Runtime: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.202-b08
    
    
    
    ----ARGUMENTS-------------------
    
    algorithm: PBEWithMD5AndDES
    input: Kh4BPjpQIt00Af/s+1Fx8w==
    password: test
    
    
    
    ----OUTPUT----------------------
    
    abc123
    

    说明:

    • algorithm:加密算法
    • input:要解密的内容
    • password:盐值
    • OUTPUT:解密后的内容
    • org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI 为解密使用的类

    四、在SpringBoot项目中使用

    1. 在配置文件中,配置盐值:

      jasypt.encryptor.password=test
      
    2. 配置要解密的内容,我这里配的是对数据库密码进行解密:

      spring.datasource.password=ENC(Kh4BPjpQIt00Af/s+1Fx8w==)
      

    说明:ENC() 中包含的就是要解密的内容, 一般我们通过上面的命令先生成加密内容,然后在配置文件中将加密内容配置到ENC()中。

  • 相关阅读:
    【目标检测】SPP-Net
    华为OD七日集训第6期 十一特辑 - 按算法分类,由易到难,循序渐进,玩转OD
    什么叫误差的反向传播,反向传播误差怎么算的
    【C#】int+null=null
    在地图上画出多个点
    基于Android的手机通讯录设计
    基于C#的五子棋游戏设计
    【语音去噪】谱减法+维纳滤波语音去噪(带面板+信噪比)【含GUI Matlab源码 1661期】
    客户需求调研的三个实用工具
    力扣(LeetCode)1333. 餐厅过滤器(C++)
  • 原文地址:https://www.cnblogs.com/hxgoto/p/16281052.html