Springboot配置文件加密

news2024/10/2 16:25:10

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、jasypt
  • 二、使用步骤
    • 1.引入依赖
    • 2.添加配置
    • 3.生成密钥
    • 3.idea启动添加环境变量
    • 3.linux环境启动
  • 报错


前言

前面叙述了数据传递过程中的加密,需要使用到aop对result和request进行加密和解密。现在需要对服务器的中间件进行保护设置,在配置文件中尽量不要暴露出来服务器件的密码账号。需要对配置文件进行加密处理


一、jasypt

jasypt是专门加密各种配置文件的依赖包

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

jasypt有多种版本,并且包之间的依赖问题比较多

二、使用步骤

1.引入依赖

2.添加配置

如下(yml配置):

jasypt:
  encryptor:
    algorithm: PBEWithMD5AndDES		#算法-固定写法一般没人改
    password: 1234qwer
    iv-generator-classname: org.jasypt.iv.NoIvGenerator	#设置初始向量IV生成器的类名

3.生成密钥

使用代码生成密钥

public class JasyptUtil {

    /**
    * 加密方法
    * @param salt 盐值
    * @param targetString 待加密字符串
    * @return 密文
    */
    public static String encrypt(String salt, String targetString) {
        BasicTextEncryptor encryptor = new BasicTextEncryptor();
        encryptor.setPassword(salt);
        return encryptor.encrypt(targetString);
    }

    /**
    * 解密方法
    * @param salt 盐值
    * @param targetString 待解密字符串
    * @return 明文
    */
    public static String decrypt(String salt,String targetString) {
        BasicTextEncryptor encryptor = new BasicTextEncryptor();
        encryptor.setPassword(salt);
        return encryptor.decrypt(targetString);
    }

    public static void main(String[] args) {
        String salt = "1234qwer";
        String password = "xxxxx";
        // 进行加密操作
        String encryptString1 = encrypt(salt, password);
        // 进行解密操作
        String decryptString1 = decrypt(salt, encryptString1);
        // 输出明文和密文
        System.out.println("encryptString1="+encryptString1);
        System.out.println("decryptString1="+decryptString1);
    }
}

使用jar包生成密钥

java -cp D:\repository\org\jasypt\jasypt\1.9.3\jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="xxxxx" password=1234qwer algorithm=PBEWithMD5AndDES

在yml配置文件中修改密钥:

password: ENC(KMMwXkYtccOvU+mMOXXojP7Tif1Ja9fN)

ENC是jaspty中默认的,可以设置配置项自定义设置

3.idea启动添加环境变量

在idea中设置启动项configuration,添加环境变量

在这里插入图片描述

3.linux环境启动

nohup java -Djasypt.encrypt.password=1234qwer  -jar xxxxx.jar > nohup.log &

报错

版本问题,解决冲突

如果错误信息是缺少jce安全插件,那么需要下载jce_policy-8的zip包去放入到JDK下的jre/lib/security下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/54342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker 命令 相关

mysql 主从复制&#xff1a; 一主多从配置 主服务器&#xff1a;容器名mysql-master&#xff0c;端口3307 从服务器&#xff1a;容器名mysql-slave1&#xff0c;端口3308 从服务器&#xff1a;容器名mysql-slave2&#xff0c;端口3309 注意&#xff1a;如果此时防火墙是开启…

[附源码]计算机毕业设计JAVA星期八酒店管理系统

[附源码]计算机毕业设计JAVA星期八酒店管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM myba…

ASEMI整流桥堆GBJ406的作用,GBJ406整流桥型号及参数

编辑-Z GBJ406整流桥型号及参数&#xff0c;ASEMI整流扁桥GBJ406电性参数为4A反向电压600V&#xff1b;浪涌电流Ifsm为120A&#xff1b;工作温度为&#xff1a;-55℃~150℃&#xff1b;采用台湾进GPP芯片中有4个芯片&#xff0c;芯片尺寸84MIL。 GBJ406参数描述 型号&#xf…

FCPX插件Yanobox Motype for mac(43种动画发生器)

Yanobox Motype mac版是要您后期制作的福音。插件仅适用于&#xff1a;Mac OSX 苹果系统下&#xff1a;Final Cut Pro X 、Motion&#xff0c;Premiere Pro和After Effects剪辑软件。随意更改字体大小和位置&#xff0c;随意制作你喜欢的视频&#xff01; 提供了一个多功能的…

从根上理解Cglib与JDK动态代理

最近在阅读到了Spring源码对于两种动态代理使用在不同场景下的使用&#xff0c;两种方式各有利弊写一篇文加深自己的认识。文中对于源码的涉及较少&#xff0c;更多的是作者自己的理解和举例&#xff0c;然后通过部分源码验证。 首先看两个面试经常会遇到的关于Spring的问题&a…

数理统计笔记7:分类数据分析-拟合优度检验和列联分析

引言 数理统计笔记的第7篇介绍了分类数据分析的方法&#xff0c;包括拟合优度检验和列联分析&#xff0c;给出了两者的卡方检验量的表达式&#xff0c;并且用例子进行了说明&#xff0c;最后谈了列联分析需要注意的问题。 引言什么是分类型数据拟合优度检验χ2\chi^2χ2统计量例…

使用AWS-AppSync实时监控物联网设备iOS端

aws-appsync-iot-core-实时iOS端示例 第一步参考如下资料 第一步找资料 网址&#xff1a; https://aws.amazon.com/cn/blogs/mobile/iot-with-aws-appsync/ iOS的sdk是 &#xff1a; https://github.com/aws-amplify/aws-sdk-ios android的sdk是&#xff1a; https://gith…

[附源码]JAVA毕业设计基于web的公益募捐网站(系统+LW)

[附源码]JAVA毕业设计基于web的公益募捐网站&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

Apache JMeter压测工具

1.工具介绍 是什么 JMeter是一个软件&#xff0c;使负载测试或业绩为导向的业务&#xff08;功能&#xff09;测试不同的协议或技术。 Apache软件基金会的Stefano Mazzocchi JMeter的最初的开发。他写道&#xff1a;它主要对 Apache JServ&#xff08;现在称为如Apache Tomcat…

项目管理工具dhtmlxGantt入门教程(一):如何安装dhtmlxGantt

您可以使用 NuGet 、 Bower 或 npm 包管理器将 dhtmlxGantt 包安装到您的项目中,也可以从 CDN 中包含必要的 JS/CSS 文件。 DhtmlxGantt正版试用下载&#xff08;qun&#xff1a;764148812&#xff09;https://www.evget.com/product/4213/download NuGet 安装 dhtmlxGantt …

C++使用gRPC实例

什么是gRPC RPC 即远程过程调用协议&#xff08;Remote Procedure Call Protocol&#xff09;&#xff0c;可以让我们像调用本地对象一样发起 远程调用。RPC 凭借其强大的治理功能&#xff0c;成为解决分布式系统通信问题的一大利器。 gRPC是一个现代的、高性能、开源的和语言…

Python数据分析实战-实现一维列表(数组)和多维列表(数组)的相互转化(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用&#xff0c;分为分类问题&#xff08;预测值是离散型&#xff09;和回归问题&#xff08;预测值是连续型&#xff09;&#xff08;具体见之前的文章&#xff09;。 从本期开始&#xff0c;我将做一个数据分析类实战…

[附源码]计算机毕业设计springboot校园疫情管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

文件的上传与下载

文章目录一、 实验目的&#xff1a;二、实验要求&#xff1a;三、实验内容&#xff1a;1、单文件上传2、多文件上传3、上传文件的大小限定4、实现文件的下载功能&#xff0c;并解决下载乱码问题一、 实验目的&#xff1a; 掌握Servlet的HttpServletRequest对文件上传的支持&am…

内存管理---分页机制

目录 物理内存管理带来的问题 直接映射 一级页表 二级页表 参考&#xff1a; &#xff08;C语言内存七&#xff09;分页机制究竟是如何实现的&#xff1f; - Smah - 博客园 物理内存管理带来的问题 比如4GB的flash, 如果应用程序可直接访问物理内存&#xff0c;那么可能一个…

云小课|基于华为云WAF的日志运维分析,构筑设备安全的城墙

阅识风云是华为云信息大咖&#xff0c;擅长将复杂信息多元化呈现&#xff0c;其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。 摘要&#xff1a;云日志服务用于收集来自主机和云服务的日志数据&#x…

windows安装docker版青龙面板

1.下载docker Docker Desktop 官方下载地址&#xff1a; windows docker 2 管理员运行PowerShell&#xff0c;执行下面的命令(Hyper-V 和容器特性) Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All3.运行第一步下载好的exe 双击下载的 Docker fo…

springboot基于vue.js的掌上博客系统的设计与实现毕业设计源码063131

Springboot掌上博客系统的设计与实现 摘 要 掌上博客系统是当今网络的热点&#xff0c;博客技术的出现使得每个人可以零成本、零维护地创建自己的网络媒体&#xff0c;Blog站点所形成的网状结构促成了不同于以往社区的Blog文化&#xff0c;Blog技术缔造了“博客”文化。 本文课…

恶补了 Python 装饰器的八种写法,你随便问~

对于每一个学习 Python 的同学&#xff0c;想必对 符号一定不陌生了&#xff0c;正如你所知&#xff0c; 符号是装饰器的语法糖&#xff0c;符号后面的函数就是我们本文的主角&#xff1a;装饰器。 装饰器放在一个函数开始定义的地方&#xff0c;它就像一顶帽子一样戴在这个…

Java---File详解

目录 一、File的概述 二、File的创建 三、File的常见成员方法 1&#xff1a;判断和获取 2&#xff1a;创建和删除 &#xff08;1&#xff09;createNewFile() &#xff08;2&#xff09;mkdir() &#xff08;3&#xff09;delete&#xff08;&#xff09; 3&#xff1a…