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


目录
相关文章
|
9天前
|
SQL 安全 算法
网络安全的隐形盾牌:漏洞防御与信息加密的艺术
【10月更文挑战第36天】在数字世界的海洋中,网络安全犹如一艘船的保护罩,守护着我们的隐私和数据安全。本文将揭开网络安全的神秘面纱,从常见的网络漏洞到先进的加密技术,再到培养必要的安全意识,我们将一步步构建起防御的堡垒。文章不仅分享技术细节,还强调了在个人和组织层面采取积极措施的重要性。
|
1月前
|
SQL 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系社会秩序、保障个人隐私与企业机密的重要基石。本文旨在深入探讨网络安全漏洞的本质、加密技术的前沿进展以及提升安全意识的有效策略,为读者揭示数字时代下信息保护的核心要义。
本文聚焦网络安全与信息安全领域,详细剖析了网络安全漏洞的形成机理、常见类型及其潜在危害,强调了及时检测与修复的重要性。同时,文章系统介绍了对称加密、非对称加密及哈希算法等主流加密技术的原理、应用场景及优缺点,展现了加密技术在保障数据安全中的核心地位。此外,针对社会普遍存在的安全意识薄弱问题,提出了一系列切实可行的提升措施,如定期安全培训、强化密码管理、警惕钓鱼攻击等,旨在引导公众树立全面的网络安全观,共同构筑数字世界的安全防线。
|
1月前
|
安全 算法 Java
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
本文提供了在数据库中对密码等敏感信息进行加盐加密的详细教程,包括手写MD5加密算法和使用Spring Security的BCryptPasswordEncoder进行加密,并强调了使用BCryptPasswordEncoder时需要注意的Spring Security配置问题。
132 0
数据库信息/密码加盐加密 —— Java代码手写+集成两种方式,手把手教学!保证能用!
|
2月前
|
SQL 安全 网络安全
网络安全的盾牌:漏洞防御与信息加密技术
【9月更文挑战第27天】在数字时代,网络安全和信息安全成为维护数据完整性、保密性和可用性的关键因素。本文将探讨网络安全漏洞的概念、成因及预防措施,同时深入讨论加密技术在保护信息安全中的作用。通过分析安全意识的重要性和提升方法,旨在为读者提供一套全面的网络安全知识框架,以增强个人和组织对抗网络威胁的能力。
39 5
|
2月前
|
安全 网络安全 数据安全/隐私保护
网络安全漏洞与加密技术:保护信息的艺术
【8月更文挑战第31天】在数字时代,网络安全和信息安全的重要性日益凸显。本文将探讨网络安全漏洞、加密技术以及提升安全意识等方面的内容。我们将通过实际代码示例和案例分析,深入了解网络攻击者如何利用安全漏洞进行攻击,以及如何运用加密技术来保护数据安全。同时,我们还将讨论如何提高个人和组织的安全意识,以应对不断变化的网络安全威胁。让我们一起探索这个充满挑战和机遇的领域吧!
|
3月前
|
SQL 安全 算法
网络安全漏洞与加密技术:保护信息的关键
【8月更文挑战第31天】在数字化时代,信息安全成为我们每个人都必须面对的问题。本文将探讨网络安全的漏洞、加密技术以及如何提高安全意识来保护我们的信息。我们将通过一些代码示例,更深入地理解这些概念。无论你是网络专家还是普通用户,这篇文章都将为你提供有价值的信息。让我们一起探索这个充满挑战和机遇的网络世界吧!
|
3月前
|
JSON 算法 API
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
【Azure API 管理】APIM 配置Validate-JWT策略,验证RS256非对称(公钥/私钥)加密的Token
|
3月前
|
安全 Nacos 数据安全/隐私保护
【技术干货】破解Nacos安全隐患:连接用户名与密码明文传输!掌握HTTPS、JWT与OAuth2.0加密秘籍,打造坚不可摧的微服务注册与配置中心!从原理到实践,全方位解析如何构建安全防护体系,让您从此告别数据泄露风险!
【8月更文挑战第15天】Nacos是一款广受好评的微服务注册与配置中心,但其连接用户名和密码的明文传输成为安全隐患。本文探讨加密策略提升安全性。首先介绍明文传输风险,随后对比三种加密方案:HTTPS简化数据保护;JWT令牌减少凭证传输,适配分布式环境;OAuth2.0增强安全,支持多授权模式。每种方案各有千秋,开发者需根据具体需求选择最佳实践,确保服务安全稳定运行。
320 0
|
6天前
|
SQL 安全 算法
揭秘网络安全:漏洞、加密与安全意识的三重奏
【10月更文挑战第39天】在数字时代的交响乐中,网络安全扮演着不可或缺的角色。本文旨在通过浅显易懂的语言,揭示网络安全的三大核心要素:网络漏洞、加密技术以及安全意识。我们将探索这些元素如何相互交织,共同维护我们的数字安全。从初学者到资深专家,每个人都能从中获得宝贵的知识和启示。
|
6天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
19 2