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

简介: 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


目录
相关文章
|
4月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
1003 10
|
6月前
|
安全 Java 数据库
Jasypt加密数据库配置信息
本文介绍了使用 Jasypt 对配置文件中的公网数据库认证信息进行加密的方法,以提升系统安全性。主要内容包括:1. 背景介绍;2. 前期准备,如依赖导入及版本选择;3. 生成密钥并实现加解密测试;4. 在配置文件中应用加密后的密码,并通过测试接口验证解密结果。确保密码安全的同时,保障系统的正常运行。
386 3
Jasypt加密数据库配置信息
|
5月前
|
人工智能 安全 Java
Spring Boot yml 配置敏感信息加密
本文介绍了如何在 Spring Boot 项目中使用 Jasypt 实现配置文件加密,包含添加依赖、配置密钥、生成加密值、在配置中使用加密值及验证步骤,并提供了注意事项,确保敏感信息的安全管理。
1155 1
|
10月前
|
云安全 安全 数据建模
《数字证书:互联网世界的"身份证"与"防盗门"》 ——揭秘网络安全背后的加密江湖
在2023年某深夜,上海陆家嘴金融公司机房遭遇黑客攻击,神秘青铜大门与九大掌门封印的玉牌突现,阻止了入侵。此门象征数字证书,保障网络安全。数字证书如验钞机识别假币,保护用户数据。它通过SSL/TLS加密、CA认证和非对称加密,构建安全通信。证书分为DV、OV、EV三类,分别适合不同场景。忽视证书安全可能导致巨额损失。阿里云提供一站式证书服务,助力企业部署SSL证书,迎接未来量子计算和物联网挑战。
|
12月前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
12月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
227 10
|
12月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
235 10
|
SQL 安全 网络安全
网络安全漏洞、加密技术与安全意识的知识分享
随着互联网的普及,网络安全问题日益严重。本文将介绍网络安全漏洞的概念、类型和防范措施,以及加密技术的原理和应用。同时,强调提高个人和企业的安全意识对于防范网络攻击的重要性。
358 7
|
存储 安全 算法
揭秘网络安全的盾牌与矛:漏洞防护与加密技术的较量
在数字化时代的棋局中,网络安全是每个参与者必须面对的挑战。本文将深入探讨网络安全中的两个关键角色——漏洞与加密技术。通过分析最新的安全漏洞案例,我们揭示网络攻击者如何利用这些漏洞进行破坏。同时,我们将展示加密技术如何成为保护数据不被窃取的强大盾牌。文章还将讨论提升个人和企业的安全意识的重要性,并通过实际的代码示例,展示如何在实践中应用这些知识来加强我们的网络防线。