springboot 之 使用jasypt加密解密插件[通俗易懂]

springboot 之 使用jasypt加密解密插件[通俗易懂]简单使用jasypt是一个java实现的安全框架1、该工具支持注解方式开启jasypt功能,以及注解方式引入一个或多个需要处理的配置文件。 2、该工具同时支持properties与yml文件的解析处理。 3、该工具支持自定义加解密类型和复写加解密方法。引入插件<dependency> <groupId>com.github.ulisesbocchio&…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

简单使用

jasypt是一个java实现的安全框架

  • 1、该工具支持注解方式开启jasypt功能,以及注解方式引入一个或多个需要处理的配置文件。
  • 2、该工具同时支持properties与yml文件的解析处理。
  • 3、该工具支持自定义加解密类型和复写加解密方法。

引入插件

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

默认情况下jasypt采用的算法是PBEWithMD5AndDES,该算法对同一串明文每次加密的密文都不一样,比较适合做数据加解密。但是该算法必须配置密码 

以下是测试程序:

springboot 之 使用jasypt加密解密插件[通俗易懂]

在配置文件中设置加解密密码

#指定加解密时使用的密码
jasypt.encryptor.password=rB8Bf1uvMvyALBoKAFfcKZuWT20208

 配置文件中设置需要加密解密的字串

#ENC表示需要解密,这里将这个配置变量注入到一个变量内,那么那个变量内容就是“123456”
#   @Value("${spring.datasource.password}")
#   private  String password;
spring.datasource.password=ENC(X+wQOPz4HKvfnSjkBi4r1w==)

 

当然我们也可以直接使用jar包生成

cd到jasypt-1.9.2.jar的当前目录,input输入要加密的字符串,password为解密时的钥匙
命令行加密:
    java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password=security algorithm=PBEWithMD5AndDES
命令行解密:
    java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI input="i00VogiiZ1FpZR9McY7XNw==" password=security algorithm=PBEWithMD5AndDES

 

自定义加密方法

如果需要使用自定义的加减密方法,我们只需要实现StringEncryptor接口即可,具体如下:

1.实现接口

import org.jasypt.encryption.StringEncryptor;
 
public class DESEncrypt  implements StringEncryptor {
 
    //加密
    @Override
    public String encrypt(String message) {
        try {
            
            return 自己定义的方法的返回值;//如果方法中包含加密密匙那么就完全没必要在配置文件中写
        } catch (Exception e) {
            e.printStackTrace();
            return message;
        }
    }
 
    //解密
    @Override
    public String decrypt(String encryptedMessage) {
        try {
             
            return 自己定义的方法的返回值;
        } catch (Exception e) {
            e.printStackTrace();
            return encryptedMessage;
        }
    }
 
}

 2.创建bean

使用java config方式实例化该对象替换默认的StringEncryptor实例

import org.jasypt.encryption.StringEncryptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
 
@Configuration
public class EncryptionConfig {
 
    @Bean("jasyptStringEncryptor")
    public StringEncryptor stringEncryptor() {
        DESEncrypt desEncrypt = new DESEncrypt();//调用我们自己实现的类即可
        return desEncrypt;
    }
}  

 

参考网址:

https://www.cnblogs.com/qingfengsuixin/p/10756604.html

https://yq.aliyun.com/articles/182720?utm_content=m_29522

https://github.com/ulisesbocchio/jasypt-spring-boot?spm=a2c4e.10696291.0.0.41fe19a4Ldsp1T

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189410.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 前端vue中文件下载的几种方式

    前端vue中文件下载的几种方式第一种方式是前端创建超链接,通过a标签的链接向后端服务发get请求,接收后端的文件流,非常简单:<a:href='”/user/downloadExcel”‘>下载模板</a>另一种情况是创建div标签,动态创建a标签:<divname=”downloadfile””downloadExcel()”>下载</div>function…

    2022年6月28日
    67
  • 2k21本世代和次世代生涯一样吗_nba2k21次世代价格

    2k21本世代和次世代生涯一样吗_nba2k21次世代价格原题链接对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。输入格

    2022年8月8日
    7
  • grid web_DataGrid

    grid web_DataGrid首先安装Infragistics.NetAdvantage.for.ASP.NET.2007.Vol.2,然后在选择项中添加UltraWebGrid,使用方法如下:1、添加“总计”值绑定完数据后,添加如下代码UltraWebGrid1.Rows.Add();UltraWebGrid1.Rows.Add();…

    2022年10月6日
    5
  • WinSCP连接被拒绝「建议收藏」

    WinSCP连接被拒绝「建议收藏」之前用WinSCP连接华为云服务器传输文件的时候没有出现过问题,但是现在连接实验室电脑的时候报“网络错误,连接被拒绝”。上网查了一下,发现是实验室服务器没有安装openssh-server,参考博文进行安装:Ubuntu安装sshd服务_我是大魔王2的博客-CSDN博客_ubuntu安装sshd具体安装步骤:1.安装openssh-serversudoapt-getinstallopenssh-server2.检查sshd是否启动一般安装成功后就会启动sshd服务,可以通过.

    2025年12月15日
    2
  • Windows系统日志分析工具– Log Parser「建议收藏」

    Windows系统日志分析工具– Log Parser「建议收藏」可参考文章:日志分析工具LogParser学习笔记_Memetali_ss的博客-CSDN博客写完才看见。吐了0x01基本设置事件ID及常见场景对于Windows事件日志分析,不同的EVENTID代表了不同的意义,摘录一些常见的安全事件的说明。4624–登录成功4625–登录失败4634–注销成功4647–用户启动的注销4672–使用超级用户(如管理员)进行登录系统:1074,通过这个事件ID查看计算机的开机、关…

    2025年10月4日
    5
  • [ Laravel 5.1 文档 ] 服务 —— 帮助函数

    [ Laravel 5.1 文档 ] 服务 —— 帮助函数

    2021年10月23日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号