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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 转:Java NIO系列教程(三) Buffer

    转:Java NIO系列教程(三) Buffer

    2022年2月22日
    38
  • 大约apache 2.4.X虚拟主机配置问题的版本号后,

    大约apache 2.4.X虚拟主机配置问题的版本号后,

    2022年1月2日
    44
  • 手机怎么识别图片上的文字「建议收藏」

    手机怎么识别图片上的文字「建议收藏」 识别提取文字的方法有很多,大家平时也都会使用到自己的方法,但是你所使用到的方法是不是简单而且识别效果很不错呢?其实手机里有很多的识别转换工具,但是很多的识别效果都不如人意,小编最近发现的一个简单有效的方法,一起来看看吧。1.首先在应用市场里找到如下的拍照识别文字工具,然后将其运行。2.在主页点击右下角的蓝色加号按钮然后会出现两个蓝色的小图标,分别是相册和相机,在此选择相机。…

    2022年6月12日
    38
  • 共享打印机无法连接打印,错误代码0x0000011b_打印机共享错误0x000001

    共享打印机无法连接打印,错误代码0x0000011b_打印机共享错误0x000001WIndows无法连接共享打印机,错误码:0x0000011bWin10电脑1直连的打印机,设备了共享。从另一个电脑2访问电脑1的共享打印机,连接提示错误0x0000011b,如下:经询问使用人,之前电脑2是可以正常连接到电脑1的共享打印机的,只是最近几天突然连接失败了。后得知电脑1最近有更新过系统补丁。经排查,通过卸载KB5005565补丁,重启电脑1后,电脑2成功连接到共享打印机,测试打印正常。处理过程:1.打开控制面板-程序-程序和功能-已安装更新。找到对应的KB5005565补丁,右

    2025年10月21日
    3
  • 超分辨率-RDN[通俗易懂]

    超分辨率-RDN[通俗易懂]一、简介RDN——ResidualDenseNetwork——残差深度网络RDN是基于深度学习的超分方法之一二、结构RDN网络结构分为4个部分:1、SFENet(ShallowFeatureExtractionNet,浅层特征提取网络)2、RDBs(ResidualDenseBlocks,残差稠密块)3、DFF(DenseFeatureFusion,稠密特…

    2022年6月18日
    52
  • 记录虚拟机桥接模式不能上网问题的解决方法「建议收藏」

    记录虚拟机桥接模式不能上网问题的解决方法「建议收藏」问题一:一直连接不上网络,右上角的网络模式显示连接不到sudovi/etc/network/interfaces初始情况下,只有以下两行autoloifaceloinetloopback在桥接模式下,需要添加以太网卡的启动,在下面添加两行autoens33ifaceens33inetdhcp看网卡的不同,填不同的,例如eth0,通过ifconfig查看本机网卡问题二:右上角显示连接上了,但是不能ping通外网开启主机的VMwareDHCP.

    2022年4月29日
    493

发表回复

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

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