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

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

目录

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.mrgr.cn/news/54162.html

相关文章:

  • 嵌入式Linux:进程如何处理信号
  • Python语法基础
  • Rust小练习,编写井字棋
  • IDEA如何查看所有的断点(Breakpoints)并关闭
  • 使用RabbitMQ实现延迟消息的完整指南
  • 基于SSM机场网上订票系统的设计
  • 【Python爬虫实战】深入解析BeautifulSoup4的强大功能与用法
  • JavaScript 字符串常用方法
  • USART串口(发送和接收)
  • 【MySQL】多表查询——内连接,左/右连接
  • MyBatisPlus
  • 【算法】将单向链表按某值分成左边小、中间相等、右边大的形式
  • 在各大媒体报纸上刊登自己的文章用什么投稿方法发表快?
  • RDK X5 目标跟踪核心代码Deepsort
  • Flux.concat 使用说明书
  • 注塑机机械手升降传送机程序
  • 现代大数据架构Kappa
  • 【Java】—JavaBean转换方法详解
  • 数据结构练习题4(链表)
  • 网络空间安全之一个WH的超前沿全栈技术深入学习之路(二:渗透测试行业术语扫盲)作者——LJS
  • 单位评职称需要在指定媒体上投稿发表文章看我如何轻松应对
  • CGAL概述
  • 缓冲区类QBuffer
  • python-库
  • 【OD】【E卷】【真题】【100分】光伏场地建设规划(PythonJavajavaScriptC++C)
  • Chapter 2 - 7. Understanding Congestion in Fibre Channel Fabrics