jasypt 配置文件关键信息配置 加密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: jasypt 配置文件关键信息配置 加密

SpringBoot 项目开发中,配置文件都是对外暴露的。不符合开发时的规范jasypt 提供了配置文件的加密解密操作。

jasypt加解密的过程:

  • 事先通过将需要加密的参数使用加密工具得到的密文写入配置文件,并在配置文件中使用ENC()“函数”(本质就是一个标记特征字符)进行标记;
  • 应用启动的时候传入解密密钥(对称加密算法的密码、非对称加密算法的私钥),然后应用在读取配置参数键值的时候,如果发现键值中含有ENC标记,就将“ENC()”中的内容抽取出来,然后调用加解密接口(org.jasypt.encryption.StringEncryptor)的实现类进行解密,从而得到明文。加密操作同理。

1、增加依赖

<!--jasypt关键密码加密解密begin--><dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>1.16</version></dependency><!--jasypt关键密码加密解密end-->

2、生成需要加密的信息密文。

jasypt拥有自己的加密方式。默认是 StringEncryptor 代码中生成密文。

packagecom.tl.springboot.jasypt;
importorg.jasypt.encryption.StringEncryptor;
importorg.junit.Test;
importorg.junit.runner.RunWith;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.test.context.SpringBootTest;
importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/*** OneTest** @author mjx* @date 2020/5/14*/@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTestpublicclassOneTest {
@AutowiredprivateStringEncryptorstringEncryptor;
@Testpublicvoidencrytest() {
Stringencrypt=stringEncryptor.encrypt("admin");
System.out.println("加密"+encrypt);
Stringdecrypt=stringEncryptor.decrypt(encrypt);
System.out.println("解密 = "+decrypt);
    }
}

或者自定义使用其他的加密方式,(实现)

@TestpublicvoidencrytestTwo() {
// 同样是 jasypt 的加解密BasicTextEncryptorbasicTextEncryptor=newBasicTextEncryptor();
// 需要 设置 加密的 密码basicTextEncryptor.setPassword("hhh");
Stringencrypt=basicTextEncryptor.encrypt("222");
System.out.println("encrypt = "+encrypt);
Stringdecrypt=basicTextEncryptor.decrypt(encrypt);
System.out.println("decrypt = "+decrypt);
    }

3、配置文件中添加密文代码。

拷贝密文代码,替换配置文件中的信息

# 密钥jasypt:  encryptor:    password: kkmima
spring:  datasource:    one:      username: root
      password: ENC(7mSezIBBQ0/1UcpsJlc+Fw==)
      jdbc-url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC
      driver-class-name: com.mysql.cj.jdbc.Driver
      type: com.zaxxer.hikari.HikariDataSource

注意:密文需要使用ENC开头并且,密文需要用括号括起来。

注意这里,密钥也在配置文件中 还是明文显示。密钥也可以放在别的地方。

1、直接放在代码中。

2、放在启动代码里。(项目因为是达成jar的方式进行运行的,所以在启动的时候是 java -jar 的方式启动)   java -jar Djasypt.encryptor.password=kkmima xxx.jar   启动添加配置,

3、放在java配置中。运行时配置

jasyp密码.png

选中项目然后在 VM options 中添加-Djasypt.encryptor.password=kkmima 那么在配置文件中 就可以不用配置

4、自定义加解密类,实现StringEncryptor接口

packagecom.mjx.config;
importorg.jasypt.encryption.StringEncryptor;
importorg.springframework.stereotype.Component;
/*** @author mjx* @date */@Component("myEncryptor")
publicclassMyEncryptorimplementsStringEncryptor {
/**** 加密方法* @param :* @param* @return null* @author: MJX* @createtime: */@OverridepublicStringencrypt(Strings) {
System.out.println("加密使用 = "+s);
returns;
    }
/**** 解密操作* @param :* @param* @return null* @author: MJX* @createtime: */@OverridepublicStringdecrypt(Strings) {
System.out.println("待解密数据: = "+s);
// 解密逻辑returns;
    }
}

配置文件中指定加解密类

#指定加解密类jasypt.encryptor.bean=myEncryptor


目录
相关文章
|
2月前
|
安全 网络协议 网络安全
【Azure 环境】从网络包中分析出TLS加密套件信息
An TLS 1.2 connection request was received from a remote client application, but non of the cipher suites supported by the client application are supported by the server. The connection request has failed. 从远程客户端应用程序收到 TLS 1.2 连接请求,但服务器不支持客户端应用程序支持的任何密码套件。连接请求失败。
|
2月前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
126 3
|
2月前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
189 3
|
2月前
|
存储 安全 数据安全/隐私保护
Docker中配置TLS加密的步骤
我们可以在 Docker 中成功配置 TLS 加密,增强 Docker 环境的安全性,保护容器之间以及与外界的通信安全。需要注意的是,在实际应用中,应根据具体情况进行更细致的配置和调整,确保符合安全要求。同时,定期更新证书和私钥,以保障安全性。
101 1
|
2月前
|
SQL 安全 算法
网络安全的隐形盾牌:漏洞防御与信息加密的艺术
【10月更文挑战第36天】在数字世界的海洋中,网络安全犹如一艘船的保护罩,守护着我们的隐私和数据安全。本文将揭开网络安全的神秘面纱,从常见的网络漏洞到先进的加密技术,再到培养必要的安全意识,我们将一步步构建起防御的堡垒。文章不仅分享技术细节,还强调了在个人和组织层面采取积极措施的重要性。
|
3月前
|
SQL 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系社会秩序、保障个人隐私与企业机密的重要基石。本文旨在深入探讨网络安全漏洞的本质、加密技术的前沿进展以及提升安全意识的有效策略,为读者揭示数字时代下信息保护的核心要义。
本文聚焦网络安全与信息安全领域,详细剖析了网络安全漏洞的形成机理、常见类型及其潜在危害,强调了及时检测与修复的重要性。同时,文章系统介绍了对称加密、非对称加密及哈希算法等主流加密技术的原理、应用场景及优缺点,展现了加密技术在保障数据安全中的核心地位。此外,针对社会普遍存在的安全意识薄弱问题,提出了一系列切实可行的提升措施,如定期安全培训、强化密码管理、警惕钓鱼攻击等,旨在引导公众树立全面的网络安全观,共同构筑数字世界的安全防线。
|
3月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
243 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
23天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
1月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
1月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
59 10