当前位置: 首页 > news >正文

jasypt对yml文件进行加密解密

目录

0.背景

1.依赖

2.yml文件

3.加密操作


0.背景

在日常开发中,我们一般会把账号密码以及一些用到的各种第三方服务的Access_Key都放入yml文件中,这时就有必要对yml文件进行加密处理了,

jasypt是一款简单的对yml加密的工具

1.依赖

        <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.0</version></dependency>

2.yml文件

server:port: 80spring:application:name: demo# =========================== ↓↓↓↓↓↓ 配置数据源 ↓↓↓↓↓↓ ===========================datasource:url: jdbc:mysql://127.0.0.1:3306/demo?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&useSSL=false # MySQL在高版本需要指明是否进行SSL连接 解决则加上 &useSSL=falsename: demousername: JASYPT_ZACK(wfv3a0rfjZkUPpLrRISeyg==)password: JASYPT_ZACK(wfv3a0rfjZkUPpLrRISeyg==)platform: mysqldriver-class-name: com.mysql.jdbc.Driver# 配置加密密钥
jasypt:encryptor:property:prefix: JASYPT_ZACK(   # TODO 加密前缀suffix: )            # TODO 加密后缀password: panghu    # TODO 加密密钥

这里的username和password都是以及加密完成的

需要用到密钥来进行解密,但是这个解密不需要我们来操作,我们只需要把原始值进行加密后填入就行了

3.加密操作

/*** <p> jasypt 加密/解密 测试类$ </p>* @description : 【 注:每次加密后的密码都不同,但根据密钥都能解析成原本的密码 】*/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = DemoApplication.class)
public class JasyptTest {@AutowiredStringEncryptor jasyptStringEncryptor;@Testpublic void encrypt() throws Exception {System.out.println("加密: " + jasyptStringEncryptor.encrypt("root"));}@Testpublic void decrypt() throws Exception {System.out.println("解密: " + jasyptStringEncryptor.decrypt("N/+f2B9SznK4MUDSp24Upw=="));}// ================ ↓↓↓↓↓↓ 下面为无需加载spring容器方式 ↓↓↓↓↓↓ ================@Testpublic void test() {// 对应配置文件中配置的加密密钥System.setProperty("jasypt.encryptor.password", "panghu");StringEncryptor stringEncryptor = new DefaultLazyEncryptor(new StandardEnvironment());System.out.println("加密: " + stringEncryptor.encrypt("root"));System.out.println("解密: " + stringEncryptor.decrypt("np9PjxccUFBZME5J4pl1Aw=="));}}

http://www.lryc.cn/news/379345.html

相关文章:

  • vue3-openlayers 使用tianditu,wmts和xyz等source加载天地图切片服务
  • npm、yarn、pnpm 最新国内镜像源设置和常见问题解决
  • Qt Object:智能即时聊天室项目
  • php,python aes加密反解
  • 基于Java学生选课管理系统设计和实现(源码+LW+调试文档+讲解等)
  • 阅读笔记——《Large Language Model guided Protocol Fuzzing》
  • C#委托:事件驱动编程的基石
  • Git的下载安装及可视化工具小乌龟
  • 【面试实战】# 并发编程之线程池配置实战
  • Pytest 读取excel文件参数化应用
  • qt 一个可以拖拽的矩形
  • C# 启动exe 程序
  • Netty中的Reactor模型实现
  • dll丢失应该怎么解决,总结5种解决DLL丢失问题的方法
  • dial tcp 10.96.0.1:443: connect: no route to host
  • VScode创建ROS项目 ROS集成开发环境
  • nodejs从基础到实战学习笔记-nodejs简介
  • 2024年最新版------二进制安装部署Kubernetes(K8S)集群
  • 【mysql】关键词搜索实现
  • Python面试十问2
  • C# OpenCvSharp 图像处理函数-颜色通道-cvtColor
  • 总结之LangChain(三)——模型IO缓存
  • 判断一个Java服务是不是GateWay
  • 三次插值曲线--插值技术
  • python循环结构
  • 深入理解Netty的Pipeline机制:原理与实践详解
  • 直方图均衡化示例
  • 私域电商新纪元:消费增值模式的创新与成功实践
  • Java——IO流(一)-(6/8):字节流-FileInputStream 每次读取多个字节(示例演示)、一次读取完全部字节(方式一、方式二,注意事项)
  • 服务器SSH 免密码登录