SpringBoot配置文件敏感信息如何加密?及踩坑总结(全面讲解)

news/2024/10/19 23:15:16/

目录

1.添加依赖

2.接下来去生成密文

3.然后在命令行窗口通过mvn命令去调用这个插件

4.接下来会生成对对应的密文,然后去替换application.properties中的对应内容

5.运行程序解密


        在软件开发中,保护敏感信息如数据库密码、API密钥等是至关重要的。Jasypt(Java Simplified Encryption)提供了一种简单而有效的方式来加密和解密这些敏感数据。在Spring Boot应用中集成Jasypt,不仅可以提高安全性,还能保持代码的整洁和可维护性。以下为集成步骤:

1.添加依赖

<!--配置密码加密-->
<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-maven-plugin</artifactId><version>3.0.3</version>
</dependency>

2.接下来去生成密文

生成密文的方式有很多,可以通过代码实现,或者借助jasypt提供的一个工具,Maven的插件。这里采用比较方便的Maven插件,将以下信息复制到pom.xml文件内:

</plugins><plugin><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-maven-plugin</artifactId><version>3.0.5</version></plugin>
</plugins>

3.然后在命令行窗口通过mvn命令去调用这个插件

mvn jasypt:encrypt-value "-Djasypt.encryptor.password=你的密钥" "-Djasypt.plugin.value=要加密的明文" "-Djasypt.encryptor.algorithm=PBEWithMD5AndDES"

这里有两个点需要补充一下:

3.1我看了网上的教程他们的命令基本是都是:

mvn jasypt:encrypt-value -Djasypt.encryptor.password="你的密钥" -Djasypt.plugin.value="要加密的明文" -Djasypt.encryptor.algorithm="PBEWithMD5AndDES"

如果使用这个命令的话会发生如下报错:

[ERROR] Failed to execute goal com.github.ulisesbocchio:jasypt-maven-plugin:3.0.5:encrypt-value (default-cli) on project StudentM: No jasypt.plugin.value property provided -> [Help 1]

3.2如果未写:"-Djasypt.encryptor.algorithm=PBEWithMD5AndDES",则会发生报错:

Error Encrypting: Encryption raised an exception. A possible cause is you are using strong encryption algorithms and you have not installed the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files in this Java Virtual Machine -> [Help 1]

这是因为其默认的算法是:PBEWITHHMACSHA512ANDAES_256,但是这个算法需要有JCE(Java Cryptography Extension)的支持,如果不想安装JCE的话,就必须使用PBEWithMD5AndDES这个算法,这个算法是Windows下的JDK自带的。

4.接下来会生成对对应的密文,然后去替换application.properties中的对应内容

5.运行程序解密

在Run/Debug Configurations中配置Environment variables:--jasypt.encryptor.password=密钥

若未找到的话可以通过以下步骤打开:


http://www.ppmy.cn/news/1540361.html

相关文章

leaflet(一)初始化地图

Leaflet 与天地图结合使用&#xff0c;可以通过天地图提供的 API 获取地图瓦片&#xff0c;并在 Leaflet 地图上显示。 1. 安装依赖 首先&#xff0c;确保你已经安装了 Leaflet 和 Vue&#xff1a; npm install leaflet npm install vue-leaflet npm install leaflet.tilela…

【黑马Redis原理篇】Redis网络模型

来源视频 [16,27] 文章目录 1.用户空间和内核空间空间划分缓冲区 2.IO模型2.1 阻塞IO2.2 非阻塞IO2.3 IO多路复用2.3.1 阻塞和非阻塞的对比2.3.2 IO多路复用2.3.3 监听FD方式、通知的方式&#xff0c;有多种实现 2.4 信号驱动IO2.5 异步IO2.6 真正的同步和异步 1.用户空间和内…

开篇:SpringBoot与SpringCloud的那些事

在正式开始研究 SpringCloud 的技术之前&#xff0c;咱先简单的用比较短的篇幅聊一点概述性质的东西&#xff0c;让思维活跃起来。 SpringCloud与SpringBoot的关系和对比 一开始学习 SpringCloud 咱就知道&#xff0c;SpringCloud 的技术大多都不是自己造的&#xff0c;都是整合…

Vue快速创建工程+Element Plus

创建Vue工程 执行命令 npm init vuelatest 执行这两个绿色的命令 执行这个命令启动 npm run dev Element 打开网站https://element-plus.org/zh-CN/ npm install element-plus --save 然后在vscode中打开你的项目工程 // main.ts import { createApp } from vue import Ele…

jQuery 中的 Ajax 详解

一、概念 众所周知&#xff0c;jQuery 是一个跨主流浏览器的 JavaScript 库&#xff0c;它封装了 JavaScript 的常用功能代码&#xff0c;简化了 HTML DOM 操作、事件处理、动画设计和 Ajax 交互等任务。jQuery 中的 Ajax 是对 XMLHttpRequest 或 ActiveXObject&#xff08;IE9…

Java 小游戏《超级马里奥》

文章目录 一、效果展示二、代码编写1. 素材准备2. 创建窗口类3. 创建常量类4. 创建动作类5. 创建关卡类6. 创建障碍物类7. 创建马里奥类8. 编写程序入口 一、效果展示 二、代码编写 1. 素材准备 首先创建一个基本的 java 项目&#xff0c;并将本游戏需要用到的图片素材 image…

智能体网络时代即将来临,我们需要新的连接技术

备注&#xff1a;如果你也对这个话题感兴趣&#xff0c;欢迎联系我们&#xff1a; email: chgaoweigmail.com Discord: https://discord.gg/CDYdTPXXMB 官网: https://pi-unlimited.com 我们的方案代码已经开源&#xff0c;github&#xff1a;https://github.com/chgaowei/…

Ubuntu卸载Mysql【ubuntu 24.04/mysql 8.0.39】

一、准备工作 查看ubuntu版本号 查看mysql版本号(如果没有安装mysql,这一步省略) 二、Ubuntu上卸载mysql(如果没有安装mysql这一步省略) 在Ubuntu上卸载MySQL可以通过以下步骤进行&#xff0c;确保完全移除MySQL相关的包和数据&#xff1a; 1. 停止MySQL服务 在卸载之前…