jasypt库的使用[通俗易懂]

jasypt库的使用[通俗易懂]jasypt库的使用1.简介Jasypt是一个Java简易加密库,用于加密配置文件中的敏感信息,如数据库密码。jasypt库与springboot集成,在实际开发中非常方便。2.添加依赖jasypt开发者开发了starter,添加jasypt-spring-boot-starter依赖就可以了。该库中有使用到slf4j依赖,若单独测试,需添加相应依赖,或直接添加spring-boot-st…

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

Jetbrains全系列IDE稳定放心使用

jasypt库的使用

1.简介

Jasypt是一个Java简易加密库,用于加密配置文件中的敏感信息,如数据库密码。jasypt库与springboot集成,在实际开发中非常方便。

2.添加依赖

jasypt开发者开发了starter,添加jasypt-spring-boot-starter依赖就可以了。该库中有使用到slf4j依赖,若单独测试,需添加相应依赖,或直接添加spring-boot-starter依赖。

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

3.添加注解

在Application应用类上添加注解

@EnableEncryptableProperties
启用jasypt。

4.配置使用

将加密后的配置信息使用ENC函数,添加到配置文件中,应用启动加载配置文件时,会自动解密。
Jasypt默认使用的算法为PBEWithMD5AndDES,该算法需要一个加密密钥,可以在应用启动时指定。也可以直接写入配置文件,安全性稍差。

jasypt:
  encryptor:
    password: password

5.测试示例

5.1 准备工作

添加依赖,应用类添加注解。

5.2 添加加密后的属性配置

在配置文件中加入加密后的属性配置信息,我们加密了字符串Password@1,使用的加密密钥为password,添加到application.yml文件中。

jasypt:
  encryptor:
    password: password

encrypted:
  property: ENC(uTSqb9grs1+vUv3iN8lItC0kl65lMG+8)

5.3 添加属性解析类

添加一个类,加载配置文件中的配置信息。

@Service
public class PropertyServiceForJasyptStarter { 
   

	@Value("${encrypted.property}")
	private String property;

	public String getProperty() { 
   
		return property;
	}

	public String getPasswordUsingEnvironment(Environment environment) { 
   
		return environment.getProperty("encrypted.property");
	}
}

5.4 添加测试函数

@RunWith(SpringRunner.class)
@SpringBootTest
public class JasyptSimpleIntegrationTest { 
   

	@Autowired
	PropertyServiceForJasyptStarter service;

	@Autowired
	Environment environment;

	@Test
	public void whenDecryptedPasswordNeeded_GetFromService() { 
   
		System.out.println("service.getProperty() = " + service.getProperty());

		System.out.println("service = " + service.getPasswordUsingEnvironment(environment));
	}
	
	/** * 生成加密密文 * 每次加密后密文不一样 */
    @Test
    public void testPBECli(){ 
   
        String[] args = { 
   "input='Password@1",
                "password=password", "algorithm=PBEWithMD5AndDES"};
        JasyptPBEStringEncryptionCLI.main(args);
    }
}

执行结果如下:

service.getProperty() = Password@1
service = Password@1

6、加密函数

	public static void main(String[] args) { 
   
		// 创建加密对象,默认 PBEWithMD5AndDES
		BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
		// 加密所需的密钥
		textEncryptor.setPassword("password");
		// 加密后的数据(数据库的用户名或密码)
		String encData = textEncryptor.encrypt("Password@1");
		// 解密后的数据(原数据)
		String decData = textEncryptor.decrypt(encData);
		System.out.println("encData: " + encData);
		System.out.println("decData: " + decData);
	}

输出:

encData: uK6xyed60q9NlSBAVb0pFyxA23TYFgtQ
decData: Password@1

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

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

(0)
上一篇 2026年4月14日 上午10:55
下一篇 2026年4月14日 上午11:01


相关推荐

  • hadoop版本比较

    hadoop版本比较由于 Hadoop 版本混乱多变 因此 Hadoop 的版本选择问题一直令很多初级用户苦恼 本文总结了 ApacheHadoop 和 ClouderaHado 的版本衍化过程 并给出了选择 Hadoop 版本的一些建议 1 nbsp ApacheHadoop 1 nbsp nbsp Apache 版本衍化截至目前 2012 年 12 月 23 日 ApacheHadoop 版本分为两代 我们将第一代 Hado

    2026年3月17日
    2
  • 基于yolov4的目标检测_yolov3目标检测

    基于yolov4的目标检测_yolov3目标检测1项目的克隆和必要的环境依赖1.1项目的克隆YOLOv5的代码是开源的,因此我们可以从github上克隆其源码。不得不说GitHub的确是全球最大的男性交友网站,里面的人个个都是人才,yolov5发布才一年左右的时间,YOLOv5就已经更新了5个分支了,分别是yolov5.1-yolov5.5分支。该项目就是利用的yolov5.5分支来作为讲解。首先打开yolov5的github的https://github.com/ultralytics/yolov5/tree…

    2022年10月16日
    3
  • nvue踩坑2

    nvue踩坑2小透明继续写一个 继上次的探索之后又遇到了一些问题 我来再说两句吧 希望能给同样遇到问题的朋友一点启发 1 关于图片圆角 因为我做的页面上面有出现用户头像 是圆形的 需要做成图片圆角 看了一些别人的博客 他们说是在 image 外层的父容器 div 的样式上加上圆角 然后用 overflow 来切掉它 让图片变圆 可是我尝试了以后发现并没有成功 然后 我把关注点从 div 上挪开 改成在 image 上加上 border radius 就成功了 写成 50 image div div image

    2025年11月9日
    6
  • spring cloud和dubbo的区别

    spring cloud和dubbo的区别最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论 微服务架构 。近期也看到各大技术社区开始组织一些沙龙和论坛来分享spring Cloud的相关实施经验,这对于最近正在整理SpringCloud相关套件内容与实例应用的我而言,还是有不少激励的。目前,SpringCloud在国内的知名度并不高,在前阵子的求职过程中,与一些互联网公司的架构师、技术VP或者CT

    2022年4月29日
    44
  • 专业OpenAI API中转服务 – 国内直连无阻碍

    专业OpenAI API中转服务 – 国内直连无阻碍

    2026年3月16日
    3
  • RecyclerView使用_recyclerview是什么

    RecyclerView使用_recyclerview是什么本文目录RecyclerView概述RecyclerView使用-基础篇第一步:添加RecyclerView第二步:添加布局文件第三步:添加逻辑代码运行效果RecyclerView使用-进阶篇布局管理器线性布局管理器网格布局管理器ItemDecorationItem动画Item点击RecyclerView使用-高级篇(上拉刷新下拉加载更多)第一步:添加依赖第二步:布局文件第三步:逻辑代码完整代…

    2025年8月9日
    4

发表回复

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

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