关于Springboot数据库配置文件明文密码加密解密的问题
作者:豆趣编程 发布时间:2023-11-25 03:29:46
标签:Springboot,数据库,密码,加密,解密
有时候因为安全问题,需要把配置文件的中数据库用户名密码由明文改成密文,大多数其实是为了应付甲方而已。
1.pom.xml引入依赖
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>
2.自己想一个秘钥,然后弄一个main方法来测试和生成加密串,下面例子把“password”当做秘钥,加密 xiaoming 字符串。同样可以把加密的打印出来,放到解密里面去验证一下
//给配置文件加密
public static void main(String[] args) {
// 加密
BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
//自己设置的秘钥
textEncryptor.setPassword("password");
String userName = textEncryptor.encrypt("xiaoming");
System.out.println(userName);
// 解密
BasicTextEncryptor textEncryptor2 = new BasicTextEncryptor();
textEncryptor2.setPassword("password");
String oldPassword = textEncryptor2.decrypt("avU0Q/XfNMXcgOgowdcfLfB1FDdApc292pzeq8/uvrllChedBJvj4A==");
System.out.println(oldPassword);
System.out.println("--------------------------");
}
3.springboot配置文件 application.properties中添加配置
jasypt.encryptor.password=password
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@192.168.100.123:7029:base
spring.datasource.username=ENC(c31B0jWJp3EGFwqSkrUzhY//4CY/sO)
spring.datasource.password=ENC(+KUeW5dB03CxJYz9oVV2flbYW5xs1+)
要先声明秘钥,然后把刚main方法中加密出来的字符串替换原来的,注意一定要用ENC()把字符串包住才行。
然后重启就完事,就是这么简单。
来源:https://blog.csdn.net/lianzhang861/article/details/123555635


猜你喜欢
- 什么是ShiroApache Shiro是一个功能强大且易于使用的Java安全框架,它执行身份验证、授权、加密和会话管理。借助Shiro易于
- java反射机制是什么反射机制是在运行状态中,可以知道任何一个类的属性和方法,并且调用类的属性和方法;反射机制能够做什么1、判断运行对象的所
- Docker现在很火,容器技术看上不无所不能,但这实际上是一种误解,不要被炒作出来的泡沫迷住双眼,本文抛去炒作,理性地从Java程序员的角度
- 前言本文准确来讲是探讨如何用 Jackson 来序列化 Apache avro 对象,因为简单用 Jackson 来序列化 Apache a
- 状态分类在Hibernate框架中,为了管理持久化类,Hibernate将其分为了三个状态:瞬时态(Transient Object)持久态
- 使用Castle.Core.dll实现,核心代码是使用Castle.DynamicProxy.ProxyGenerator类的CreateI
- Android 消息机制1.概述Android应用启动时,会默认有一个主线程(UI线程),在这个线程中会关联一个消息队列(MessageQu
- 相信很多人在开发过程中经常会遇到需要对一些重要的信息进行加密处理,今天给大家分享我个人总结的一些加密算法:常见的加密方式分为可逆和不可逆两种
- MongoDBMongoDB作为一种NoSQL数据库产品,其实已经非常著名了。去年,由于MongoDB安全认证的薄弱,上万家公司中招。虽然是
- explicit 关键字用于显式声明一个类构造函数是显式而非隐式的,从而禁用类构造函数的隐式自动类型转换。类构造函数默认情况下即声
- 一般情况下,在Word中添加文字水印仅支持添加一个文本字样的水印,但在复杂的办公环境中,由于对不同文档的设计要求,需要在Word文档中添加平
- 前言AndroidStudio升级到3.0之后,gradle版本也随之升级到了3.0.0版本。当gradle插件升级到3.0.0及以上后,我
- 对于Android View的测量,我们一句话总结为:
- 一、概述使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强
- 本文实例为大家分享了Unity实现场景漫游相机的具体代码,供大家参考,具体内容如下前言拿到场景后总喜欢在场景里面玩一段时间,那这个脚本就是你
- Spring Rest接口路径参数可选我有一个 Spring Rest 服务,其中有一个路径参数是可选的(实际情况是我原来将参数放到路径中,
- 选择排序选择排序是一种简单直观的排序算法,它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未
- 项目比较大有时候会比较卡,虽然有GC自动清理机制,但是还是有不尽人意的地方。所以尝试在项目启动文件中,手动写了一个定时器,定时清理内存,加快
- 1、类的修饰符分为:可访问控制符和非访问控制符两种。 可访问控制符是:公共类修饰符 public非访问控制符有:抽象类修饰符 abstrac
- 本文实例讲述了C#图像伪彩色处理方法。分享给大家供大家参考。具体如下://灰度图转伪彩色图像函数public Bitmap PGrayToC