springboot使用jasypt增加应用安全性

Jasypt 开源加密库使用教程 Jasypt 加密框架概述 1、Jasypt Spring Boot 为 spring boot 应用程序中的属性源提供加密支持,出于安全考虑,Spring boot 配置文件中的敏感信息通常需要对它进行加密/脱敏处理,尽量不使用明文,要实现这一点,办法有很多,自己手动对敏感信息进行加解密也是可以的。 2、有需求就有人奉献,Jasypt 开源安全框架就是专门用于处理 Spring boot 属性加密的,在配置文件中直接配置密文,然后应用启动的时候,Jasypt 会自动将密码解密成明文供程序使用。 3、 阅读详情

无论任何开发安全问题也是我们应该考虑的部分,除了数据接口层面的安全性,数据库用户名密码等敏感信息也是需要考虑安全问题,日常开发中大多数也习惯写明文,这样如果代码泄露数据库也面临较大威胁,本次将分享数据库用户名、密码如何在springboot项目中配置和使用

1 解决方案

解决上述问题其实比较简单,无非就是对数据库用户名和密码加密,但是可用的加密算法特别多,有对称加密的如DES、3DES(TripleDES)、AES、RC2、RC4、RC5和Blowfish等,不对称加密RSA等,但这些算法可能过于复杂,配合springboot也有些难度. 最后经查阅资料大部分都推荐我们使用jasypt ,这个加密算法的特点是每次对同一内容加密后的结果都不一样,但解密出来的结果却是一样的

2 配置

springboot也提供了相应支持,但是需要注意版本的对应关系,下面是有人整理的对应关系

https://blog.youkuaiyun.com/u013905744/article/details/86508236

pom增加下面的配置即可

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

yml文件也需要增加配置,只需配置一下jasypt的秘钥(盐值)即可

jasypt:
   encryptor:
     #加密秘钥
     password: debugxwz

3 加密测试类、数据库连接配置

import org.jasypt.util.text.BasicTextEncryptor;

public class Test {
    public static void main(String args[]){
        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
        //加密所需的salt(盐)
        textEncryptor.setPassword("debugxwz");
        //要加密的数据(数据库的用户名或密码)
        String username = textEncryptor.encrypt("root");
        String password = textEncryptor.encrypt("123456");
                System.out.println("username:"+username);
        System.out.println("password:"+password);
    }
}

 这里虽然加密了用户名和密码,但实际开发只加密密码也就ok了

spring:
  datasource:
    username: root
    password: ENC(9hKt5abXFE4dTsZ8XfQEjw==)
    #password: 123456
    url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
    driver-class-name: com.mysql.jdbc.Driver

这里需要注意ENC是大写,不能写错否则启动报错数据库也连不上,上述配置做完之后就弄好了,启动后日志如下:

参考资料:https://www.jianshu.com/p/838f4d2b926a

Jasypt加密/解密工具嵌入Spring boot框架的使用教程 Jasypt (Java Simplified Encryption) 是一个开源的Java库,专注于简化加解密过程,特别适合在Java应用程序中处理敏感数据,如密码、密钥或任何其他需要保护的信息。Jasypt的目标是提供一个易于使用的API,使得开发者能够轻松地集成加密功能,而不必成为加密专家。 阅读详情

相关推荐

SpringBoot使用Jasypt对配置文件加密、数据库密码加密_jasypt对springboot配置文件加密的使用

在Springboot应用程序中,如果使用了@SpringBootApplication 或者@EnableAutoConfiguration注解,则可以在pom文件中添加jasypt-spring-boot-starter依赖,然后就可以在整个Spring环境中使用jasypt对属性进行加解密操作(属性包括:系统属性、环境属性、命令行参数、application.properties、application-*.properties、yml属性以及任何其他属性源)。4.2.1 解决方案1,降低版本。

2501_90237168的博客 1747

jasypt使用

jasypt使用 Jasypt可以用于配置文件加密。通常配置文件中存放有数据库账号密码等敏感的输入,如果被攻击者通过任意文件读取的漏洞访问,那么这些敏感信息很容易泄露,因此对这些数据加密加强了系统的安全性。 Jasypt使用分为加密和解密两部分。 加密可以通过执行CMD命令,调用jar包中的JasyptPBEStrignEncryptionCLI类来执行加密;也可以编写测试代码,在代码中使用该jar包加密数据 解密则需要在项目中进行相应的配置(详细如下) 单数据源配置 pom.xml

weixin_43876438的博客 1199

SpringBoot jasypt数据库账号密码加解密

jasypt 全称Java Simplified Encryption,是Spring Boot应用提供property sources的加密支持,可以加密的数据有: system property environment property command line argument application.properties yaml properties other custom property sources jasypt加解密使用 前提:jasypt-1.9.0.j...

花飘万家雪 3867

加密配置信息提升安全性的工具包jasypt使用简介

总体来说,使用jasypt将配置文件中的敏感信息加密,大部分工作内部已处理好了,我们仅需要简单配置下就行了,还是非常实用的。通过这种方式,我们既可以保证敏感信息在配置文件中的安全性,又可以在系统运行时方便地获取到这些信息。同时,由于我们使用的是成熟的工具包,因此也可以避免自己编写加密解密程序可能带来的问题。

学海无涯,行者无疆 2727

jasypt 集成SpringBoot 数据库密码加密

        昨天看到一片文章,说是某某旗下酒店数据库因为程序员不小心,把数据库明文密码上传到了GitHub上,导致酒店数据注册资料、入住信息,开房记录被下载倒卖的消息。作为程序员,开发的时候为了简单,账户明明都设置很简单,基本上数据库密码都是明文的,没做什么操作,至少我待过的公司都是这样,无论是测试环境还是线上环境,想想,这个也是一大安全隐患,在此,趁现在不忙,做些基于springboot的数...

qinzzjs47的博客 2万+

JAVA集成Jasypt进行加密、解密(SpringBoot)

Jasypt 是 Java 平台的简化加密工具,支持对文本和数据进行加密和解密,尤其适合应用于 Spring Boot 项目的配置文件加密。简单易用的 API支持对属性文件内容加密支持常见的加密算法与 Spring Boot 的无缝集成Jasypt 支持多种加密算法和配置项。如果你需要使用不同的加密算法、密钥生成方式等,可以通过 Java 配置进行自定义。通过自定义@Bean// 配置加密密钥,务必保密// 设置加密算法// 设置密钥迭代次数,影响破解难度。

m0_74823292的博客 971

jasypt的加密与使用

jsaypt是一个对源码进行加密的技术,可以包装我们在源码配置文件里面的有段的敏感信息,如用户名密码等。 他是一种加密的手段,注意加密后的密码要使用需要设置秘钥不然不能正产启动项目 1.依赖(这个是springboot的项目使用相关插件的依赖) <dependency> <groupId>com.github.ulisesbocchio</groupId&gt...

weixin_45568648的博客 4873

别再为倍福EL6021/EL6022的RS485接线头疼了!手把手教你硬件跳线与软件配置(附Modbus RTU主站例程)

本文详细解析了倍福EL6021/EL6022模块的RS485硬件跳线与软件配置方法,包括Modbus RTU主站编程实战。从端子定义、跳线操作到TwinCAT 3环境设置,提供完整的通信例程和故障排查技巧,帮助工程师快速解决工业现场通信问题。

weixin_30634661的博客 591

数据库 MySQL配置文件加密

D:\opensource\repository\org\jasypt\jasypt\1.9.2\jasypt-1.9.2.jar是我电脑上那个jar包所在位置。algorithm: PBEWithMD5AndDES #加密算法设置。password: abc #加密盐值。algorithm是“自己的加密方式”password是“自己加密时的盐”

weixin_53069745的博客 631

华为防火墙介绍和原理,配置详细解析

在出向外网的流量中,我们使用默认路由来指定默认的出口,并且使用nat地址转换,而在外网中,我们使用ISIS协议来进行路由的学习和更新,让外网可以访问到dmz非军事化区域的server1服务器。并进行NAT转换,实现了内部IP地址和外部IP地址之间的映射,以便内部网络可以与外部网络进行通信。网络地址转换(NAT):防火墙可实现网络地址转换,将内部私有IP地址转换成公共IP地址,以隐藏网络拓扑结构,增加网络安全性。确定安全需求:根据企业的安全需求和策略,确定防火墙的配置目标和规则。

外游者 5098

别再踩坑了!手把手教你用EB Tresos Studio创建Autosar MCAL工程(含模块配置避坑指南)

本文详细介绍了使用EB Tresos Studio创建Autosar MCAL工程的完整流程,包括工程创建前的关键准备、模块配置的避坑指南以及工程验证与代码生成的实用技巧。通过实战案例和黄金准则,帮助开发者高效完成MCAL工程创建,避免常见错误,提升开发效率。

weixin_42536058的博客 444

SpringBoot 配置文件中的敏感信息如何保护?

说明使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。 打开application.properties或application.y...

独行侠梦的博客 253

前端埋点的实践

1、前言 开始正文前先介绍一下埋点的概念~,(熟悉的朋友可以略过) 前端埋点: 是一种手段,它的目的是上报相关行为数据,相关人员以数据为依据来分析产品在用户端的使用情况,根据分析出来的结果辅助产品优化、迭代。 BI:商业智能,公司内部做数据分析相关的部门。 2、背景 在流量红利逐渐消失的现在,数据的采集、分析和精细化的运营显得更加重要,所以埋点的需求在互联网产品中是很常见的,目的上面也提到了。我们的追求就是又快又好的做好埋点工作,但是现实却不那么美好;目前我们团队在前端埋点方面存在一些痛点: 在构造埋点字段

Arui_0的博客 1772

【SpringBoot】SpringBoot整合jasypt进行重要数据加密

Jasypt(Java Simplified Encryption)是一个专注于简化Java加密操作的开源工具。它提供了一种简单而强大的方式来处理数据的加密和解密,使开发者能够轻松地保护应用程序中的敏感信息,如数据库密码、API密钥等。Jasypt的设计理念是简化加密操作,使其对开发者更加友好。它采用密码学强度的加密算法,支持多种加密算法,从而平衡了性能和安全性。

qq_61024956的博客 5204

MySQL 8.0数据库崩了别慌!手把手教你仅凭一个.ibd文件找回数据(附Go工具包)

本文详细介绍了在MySQL 8.0数据库崩溃后,如何仅凭.ibd文件恢复数据的完整流程。通过使用Go语言工具包和ALTER TABLE技巧,即使没有备份也能实现数据重生。文章包含从环境准备到数据验证的全方位指导,帮助DBA和开发者应对紧急数据恢复场景。

weixin_29235923的博客 420

Materials - UE5中的PivotPainter

可以使用3DS Max Script中的脚本(Pivot Painter)对模型进行处理,让每个Element都有自己的Pivot Point,来方便控制和制作一些特殊的顶点动画效果;

GT的虚幻引擎文档 1289

SpringBoot使用Jasypt加密

Jasypt(Java Simplified Encryption)是一个简化Java加密操作的工具,它是一个开源的Java库,旨在帮助开发者以最小的努力添加基本的加密功能,同时无需深入了解密码学的工实现原理,对开发者比较友好。优点高安全性:采用密码学强度加密技术,支持多种加密算法,平衡了性能和安全性。配置灵活:支持自定义加密算法。支持多种数据类型:可以加密密码、文本、数字、二进制文件等多种文件类型。

zhangyifang_009的博客 1540

VulnHub系列之BadStore_123渗透测试

BADSTORE: 1.2.3 早期网商系统漏洞鉴赏(2004)

Flynn的博客 1630

SpringBoot3:轻松使用Jasypt实现配置文件信息加密

对于一些单体项目而言,在没有使用SpringCloud的情况下,配置文件中包含着大量的敏感信息,比如数据库的账号密码、API服务的秘钥等等,如果这些信息泄露出去将会对企业的数据资产产生重大威胁。因此,对配置文件中的敏感信息加密是一件必要的事。Jasypt是一个易于使用的Java库,专门用于加密和解密配置文件中的敏感信息,如数据库凭据、API密钥等。它提供了一种安全的方式来存储和管理配置文件中的敏感数据,而不是以明文形式暴露。

weixin_73588491的博客 1万+

时间加强控制图,累计和控制图详细介绍,公式,计算 UCL,LCL,CL, sigma,C#实现

\(k\):参考值(通常取为检测偏移量的一半,例如 \(k = \frac{\delta \sigma}{2}\),\(\delta\)是希望检测的偏移量,\(\sigma\)是过程标准差)。- 示例中假设目标均值 \(\mu_0 = 10.0\),标准差 \(\sigma = 0.5\),参考值 \(k = 0.25\)(检测1σ偏移),控制限常数 \(h = 4\)。例如,若希望检测1个标准差的偏移(\(\delta = 1\)),则 \(k = 0.5\sigma\)。

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 814

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

使用jasypt在springboot中加密敏感信息

摘要: Jasypt是一个简化Java加密操作的轻量级库,支持与Spring Boot深度集成,通过ENC(密文)格式实现配置文件的自动加解密。其特点包括:支持AES-256等主流算法、分离式密钥管理(需通过环境变量/命令行注入)、提供Maven插件工具链。使用步骤:1) 引入Maven插件加密敏感数据;2) 在Spring Boot配置中以ENC()包裹密文;3) 运行时动态注入密钥。典型应用于数据库密码、API密钥保护及合规需求,强调密钥不可硬编码,需通过安全渠道传递。进阶配置支持算法、盐生成器等参数定

muyun2800的博客 7595

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SpringBoot使用jasypt加解密密码

在我们的服务中不可避免的需要使用到一些秘钥(数据库、redis等);使用过SpringBoot配置文件的朋友都知道,资源文件中的内容通常情况下是明文显示,安全性就比较低一些。打开application.properties或application.yml,比如mysql登陆密码,redis登陆密码以及第三方的密钥等等一览无余,这里介绍一个加解密组件,提高一些属性配置的安全性。 开发和测试环境还好,但生产如果采用明文配置讲会有安全问题,jasypt是一个通用的加解密库,我们可以使用它。 <depende

qq_43842093的博客 5176

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Springboot采用jasypt加密配置

在以往的多数项目中,配置文件中的数据库密码、redis密码、nacos密码等敏感性信息一般是以明文形式存在,存在泄露的风险,因此,对敏感信息加固是很有必要,加固的一个重要环节就是对重要信息做加密处理。这里简单的介绍一下Jasypt加密本文介绍了如何在Springboot项目中使用Jasypt对配置文件中的敏感信息进行加密,包括环境配置、依赖添加、配置设置、自定义加密器和使用环境变量管理盐值,以提升项目的安全性。

u011203602的专栏 3393

SpringBoot 使用 jasypt 对配置项进行加密

jasypt 是一个开源的工具包,可以很方便的对 SpringBoot 配置文件中的配置项进行加密,保护重要数据,下面讲解一下 jasypt 的使用。

我的博客 1140

SpringBoot下使用Jasypt工具类加密属性配置

本文介绍了SpringBoot下使用Jasypt对属性进行加密,其中密文的获取使用工具类而非终端的方式. 项目github地址为:https://github.com/ulisesbocchio/jasypt-spring-boot 一. 集成jasypt 集成jasypt主要有以下三种方式 1. 直接加依赖 项目中使用了@SpringBootApplication或@EnableAut...

且炼时光 1万+
上一篇: spark算子练习题-灵活使用常用算子1
下一篇: spring cloud服务注册与发现之consul
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值