Springboot配置文件内容加密代码实例

这篇文章主要介绍了Springboot配置文件内容加密代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

使用的是jasypt-spring-boot-starter,具体介绍可以参考  https://gitee.com/yangziyi2017/Jasypt-Spring-Boot

引入依赖

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

创建加密工具类

需要创建一个工具类,用于对明文进行加密,获取密文,然后把密文写入到application.yml这样的配置文件中

package com.hikvision.seclab.common.util.encrypt;
import org.jasypt.encryption.pbe.StandardPBEStringEncryptor;
/**
* 使用jasypt对配置文件进行加密的工具
* @author: 2019/11/7 16:47
* @since: 0.0.1-SNAPSHOT
* @modified By:
*/
public class JasyptTool {
  public static void main(String[] a){
    StandardPBEStringEncryptor se = new StandardPBEStringEncryptor();
    se.setPassword("xxx");
    String postgres = se.encrypt("abc123");
    System.out.println(postgres);
  }
}

其中有一个设定密码的动作,是设定加密使用的salt,时jasypt组件必选的配置,有些文章中在配置文件中使用jasypt.encryptor.password设置,这样不安全,别人拿到salt,使用jasypt可以直接解密配置文件中的密文。

修改配置文件

获取密文后,修改配置文件

spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql:
spring.datasource.username=pg_name
spring.datasource.password=ENC(t78dKQb1viAT2QKDxxeerdaNm6wyDCJ)
spring.datasource.initialization-mode=always

设置jasypt.encryptor.password

开发环境

可以通过配置jvm启动参数来指定jasypt.encryptor.password的值

生产环境

可以在启动时,设定在启动参数中
java -Dfile.encoding=UTF8 -Djasypt.encryptor.password=e9fbdb2d3b21 -jar -Xmx512m xxxDemo.jar

在docker容器中密文的密码可以设置成环境变量(如:JASYPT_PASSWORD ),上述命令可以修改为:
java -Dfile.encoding=UTF8 -Djasypt.encryptor.password=${JASYPT_PASSWORD} -jar -Xmx512m settlement.jar

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • SpringBoot配置文件中数据库密码加密两种方案(推荐)

    SpringBoot项目经常将连接数据库的密码明文放在配置文件里,安全性就比较低一些,尤其在一些企业对安全性要求很高,因此我们就考虑如何对密码进行加密. 介绍两种加密方式:jasypt 可加密配置文件中所有属性值; druid 自带了加解密,可对数据库密码进行加密. jasypt 加解密 jasypt 是一个简单易用的加解密Java库,可以快速集成到 Spring 项目中.可以快速集成到 Spring Boot 项目中,并提供了自动配置,使用非常简单. 步骤如下: 1)引入maven依赖 <de

  • SpringBoot+Shiro学习之密码加密和登录失败次数限制示例

    这个项目写到现在,基本的雏形出来了,在此感谢一直关注的童鞋,送你们一句最近刚学习的一句鸡汤:念念不忘,必有回响.再贴一张ui图片: 前篇思考问题解决 前篇我们只是完成了同一账户的登录人数限制shiro拦截器的编写,对于手动踢出用户的功能只是说了采用在session域中添加一个key为kickout的布尔值,由之前编写的KickoutSessionControlFilter拦截器来判断是否将用户踢出,还没有说怎么获取当前在线用户的列表的核心代码,下面贴出来: /** * <p> * 服务实现类

  • Springboot实现密码的加密解密

    现今对于大多数公司来说,信息安全工作尤为重要,就像京东,阿里巴巴这样的大公司来说,信息安全是最为重要的一个话题,举个简单的例子: 就像这样的密码公开化,很容易造成一定的信息的泄露.所以今天我们要讲的就是如何来实现密码的加密和解密来提高数据的安全性. 在这首先要引入springboot融合mybatis的知识,如果有这方面不懂得同学,就要首先看一看这方面的知识: 推荐大家一个比较好的博客: 程序猿DD-翟永超 http://blog.didispace.com/springbootmybatis/

  • SpringBoot接口加密解密统一处理

    我们与客户端的接口交互中,为了更高的安全性,我们可能需要对接口加密(请求参数加密,服务端解密).返回信息加密(服务端加密,客户端解密),但是也不是所有的接口都这样,有些接口可能不需要,我们可以使用注解来轻松达到此要求. 将接口参数的加密解密和返回信息的加密解密分开,分别定义注解,利用Controller的ControllerAdvice来拦截所有的请求,在其中判断是否需要加密解密,即可达到要求. 使用方法:使用 DecryptRequest 和 EncryptResponse 注解即可,可以放在

  • 在SpringBoot中通过jasypt进行加密解密的方法

    1.用途 在SpringBoot中,通过jasypt可以进行加密解密. 这个是双向的, 且可以配置密钥. 2.使用: 2.1通过UT创建工具类,并认识jasypt import org.jasypt.util.text.BasicTextEncryptor; import org.junit.Test; public class UtilTests { @Test public void jasyptTest() { BasicTextEncryptor encryptor = new Basi

  • Springboot整合Shiro之加盐MD5加密的方法

    1.自定义realm,在Shiro的配置类中加入以下bean /** * 身份认证 realm */ @Bean public MyShiroRealm myShiroRealm(){ MyShiroRealm myShiroRealm = new MyShiroRealm(); System.out.println("myShiroRealm 注入成功"); return myShiroRealm; } 2.重写方法 // 身份认证 @Override protected Authe

  • 利用Jasypt如何对Spring Boot配置文件加密

    前言 本文主要介绍了Jasypt对Spring Boot配置文件加密的相关方法,下面话不多说了,来一起看看详细的介绍吧 方法如下: 引入jasypt <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.0.0</version> <

  • Springboot配置文件内容加密代码实例

    这篇文章主要介绍了Springboot配置文件内容加密代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用的是jasypt-spring-boot-starter,具体介绍可以参考  https://gitee.com/yangziyi2017/Jasypt-Spring-Boot 引入依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <

  • Springboot整合Shiro的代码实例

    这篇文章主要介绍了Springboot整合Shiro的代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.导入依赖 <!--shiro--> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-spring</artifactId> <version>1.4.0</versio

  • Spring-boot的debug调试代码实例

    这篇文章主要介绍了Spring-boot的debug调试代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 xml文件中配置: <property> <name>scf.server.vm.all</name> <value>-Xms512m -Xmx512m -Xmn128m -Xss1024K -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -XX:

  • springboot集成fastDfs过程代码实例

    这篇文章主要介绍了springboot集成fastDfs过程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pom.xml 引入依赖 <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.1-RELEASE</vers

  • springboot redis分布式锁代码实例

    这篇文章主要介绍了springboot redis分布式锁代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 随着微服务等分布式架构的快速发展及应用,在很多情况下,我们都会遇到在并发情况下多个线程竞争资源的情况,比如我们耳熟能详的秒杀活动,多平台多用户对同一个资源进行操作等场景等.分布式锁的实现方式有很多种,比如基于数据库.Zookeeper.Redis等,本文我们主要介绍Spring Boot整合Redis实现分布式锁. 工具类如下: i

  • SpringBoot登录判断过程代码实例

    这篇文章主要介绍了SpringBoot登录判断代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 <!-- html登录代码 --> <div class="box"> <div class="title">登录</div> <div class="input"> <label for="name">

  • php编程实现获取excel文档内容的代码实例

    1.readexcel.system.php 复制代码 代码如下: <?php /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */ /** * A class for reading Microsoft Excel Spreadsheets. * * Originally developed by Vadim Tkachenko under the name PHPExcelReader. * (http://source

  • PHP基于openssl实现非对称加密代码实例

    使用非对称加密主要是借助openssl的公钥和私钥,用公钥加密私钥解密,或者私钥加密公钥解密. 1.安装openssl和php的openssl扩展 2.生成私钥:openssl genrsa 用于生成rsa私钥文件,生成是可以指定私钥长度和密码保护 openssl genrsa -out rsa_private_key.pem 1024 3.生成公钥:rsa命令用于处理RSA密钥.格式转换和打印信息 openssl rsa -in rsa_private_key.pem -pubout -out

  • 使用Python监控文件内容变化代码实例

    利用seek监控文件内容,并打印出变化内容: #/usr/bin/env python #-*- coding=utf-8 -*- pos = 0 while True: con = open("a.txt") if pos != 0: con.seek(pos,0) while True: line = con.readline() if line.strip(): print line.strip() pos = pos + len(line) if not line.strip(

  • Java实现SHA1加密代码实例

    微信接入中需要用到SHA1的算法.Java版的SHA1加密如下: /* * 微信公众平台(JAVA) SDK * * Copyright (c) 2016, Ansitech Network Technology Co.,Ltd All rights reserved. * http://www.ansitech.com/weixin/sdk/ * * Licensed under the Apache License, Version 2.0 (the "License"); * y

随机推荐