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


相关推荐

  • DotNetTextBox用法

    DotNetTextBox用法把这个添加到页面的第二行<%@Registerassembly=’DotNetTextBox’namespace=’DotNetTextBox’tagprefix=’DNTB’%&gt

    2022年7月2日
  • 进程池及回掉函数[通俗易懂]

    进程池在说进程池之前先来说一个概念:数据共享数据共享1.进程间的通信应该尽量避免共享数据的方式2.进程间的数据是独立的,可以借助队列或管道实现通信,二者都是基于消息传递的。虽然进程间数据独立

    2022年3月29日
  • 冯诺依曼计算机特点核心(冯诺依曼计算机体系结构特点)

    冯·诺依曼计算机的特点1.计算机由运算器、存储器、控制器、输入输出设备5大部件组成2.指令和数据以同等地位存储于储存器内,并可按照地址寻访3.指令和数据均用二进制码表示4.指令由操作码和地址码组成5.指令在存储器之中按照顺序存放。通常,指令是顺序执行的,在特定条件下,可以根据运算结果或根据设定的条件改变执行顺序6.机器以运算器为中心,输入输出设备与存储器之间的数据存储必须通过运算器完成。…

    2022年4月18日
  • vs2008sp1补丁怎么安装_win10系统怎么安装cad2005

    vs2008sp1补丁怎么安装_win10系统怎么安装cad2005我第一次安装这个补丁的时候就挂了,搞得VS2005和相关的一些程序都不能运行,后来在网上找到了一些解决方法,结合自己的实际体验,写了这篇教程。补丁相关资料:简体中文版补丁名称:VS80sp1-KB926604-X86-CHS.exe版本:50727.762知识库(KB)文章:KB928957发布日期:2006/12/14简体中文版补丁大小:430

    2022年9月28日
  • bat中使用mshta调用vbs语句获取精准计算的日期

    bat中使用mshta调用vbs语句获取精准计算的日期1.在bat中,获取指定的日期格式是比较麻烦的。因为cmd环境中,日期格式随着系统的时间格式设置而变化,通常系统默认的时间格式是“\’”符号作为连接符。日期通常用在文件名上,比如日志的文件名。那么日期的格式就只能用“-”符号代替,更改系统日期格式会显得容易被外界因素改变,导致不稳定。当然也可以用bat中的set来进行替换,但这样费代码量。2.对于计算日期来说,bat是难以准确做到的,也需要堆积代码量才能完成。特别是到了每个月的一号时,无法确定昨天是否是31号还是30号还是28号。那么bat就只能陷入迷茫

    2022年11月2日
  • 傻瓜攻略(一)——MATLAB主成分分析(PCA)代码及结果分析实例「建议收藏」

    傻瓜攻略(一)——MATLAB主成分分析(PCA)代码及结果分析实例「建议收藏」主成分分析主成分分析法(PCA)是一种高效处理多维数据的多元统计分析方法,将主成分分析用于多指标(变量)的综合评价较为普遍。该方法的基本思想是运用较少的变量去解释原始数据中的大部分变异,通过对原始数据相关矩阵内部结构关系的分析和计算,产生一系列互不相关的新变量。根据需要从中选取比原始变量个数少的几个新变量,这些新的变量就是所谓的主成分,它们能够充分解释原始数据的变化。因此,主成分分析法本质上是…

    2022年5月29日

发表回复

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

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