springboot/cloud配置文件加密jasypt

陆陆通通 陆陆通通     2022-12-06     471

关键词:

场景:

在开发中,spring boot的配置文件会有数据库连接等信息,如果是生产环境的数据库账号密码,那么其他的开发人员也能看到,这样就比较危险了,为了防止别人能看到配置文件中的数据库账号密码等核心数据信息,可以给密码加密

使用

1、maven依赖引入

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

2 、配置文件中设置密码的盐
在application.properties中添加此配置项
jasypt.encryptor.password=xfdadfasdfa@1212121f
或者在application.yml文件中添加

jasypt:
  encryptor:
    password: xfdadfasdfa@1212121f

3 、生产密钥



import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.StandardPBEByteEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;

/**
 * Jasypt加密类
 * @author lulei
 * @date 2018年8月20日 下午7:12:40
 * @version v1.0
 */
public class JasyptUtils 

  /**
   * Jasypt生成加密结果
   *
   * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
   * @param value    待加密值
   * @return
   */
  public static String encryptPwd(String password, String value) 
    PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();
    encryptOr.setConfig(cryptOr(password));
    String result = encryptOr.encrypt(value);
    return result;
  

  /**
   * 解密
   *
   * @param password 配置文件中设定的加密密码 jasypt.encryptor.password
   * @param value    待解密密文
   * @return
   */
  public static String decyptPwd(String password, String value) 
    PooledPBEStringEncryptor encryptOr = new PooledPBEStringEncryptor();
    encryptOr.setConfig(cryptOr(password));
    String result = encryptOr.decrypt(value);
    return result;
  

  public static SimpleStringPBEConfig cryptOr(String password) 
    SimpleStringPBEConfig config = new SimpleStringPBEConfig();
    config.setPassword(password);
    config.setAlgorithm(StandardPBEByteEncryptor.DEFAULT_ALGORITHM);
    config.setKeyObtentionIterations("1000");
    config.setPoolSize("1");
    config.setProviderName("SunJCE");
    config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
    config.setStringOutputType("base64");
    return config;
  

  public static void main(String[] args) 
    // 加密,打印出来的就是密码
    System.out.println(encryptPwd("xfdadfasdfa@1212121f", "123456"));
    // 解密
    System.out.println(decyptPwd("xfdadfasdfa@1212121f", "jh5b6352sFbibcZqLYPStg=="));
  

4、把生成的密码替换

替换成红色框部分即可

springboot/cloud启动方式说明

springboot/cloudsh的java开源框架,springcloud更多注重服务注册以及服务治理,通俗来讲就是我们所说的微服务,需要注意的是springcloud是基于springboot的扩展版,关于更多springboot以及springcloud文档请查看官方文档!springboot参考文档:ht... 查看详情

在 Pivotal Cloud Foundry 上为 Spring Boot 应用程序外部化 Vault 令牌/后端配置

】在PivotalCloudFoundry上为SpringBoot应用程序外部化Vault令牌/后端配置【英文标题】:ExternalizeVaulttoken/backendconfigurationforSpringBootapplicationonPivotalCloudFoundry【发布时间】:2019-06-2404:53:28【问题描述】:我需要外部化Vault令牌和后端以在... 查看详情

Spring Boot + 云 | Zuul 代理 |附加 URL/重写

】SpringBoot+云|Zuul代理|附加URL/重写【英文标题】:SpringBoot+Cloud|ZuulProxy|AppendaURL/rewrite【发布时间】:2015-11-2819:53:07【问题描述】:我正在使用SpringBoot+Cloud|Zuul代理(org.springframework.cloud:spring-cloud-starter-zuul:1.0.0.RELEASE)。我有以下... 查看详情

使用对称加密来加密springcloudconfig配置文件

简介在真实项目环境下,我们不会在配置文件中明文存储密码等机密性文本,以防被窃。SpringCloudConfig提供了加密方法,以使明文文本加密成密文存储在配置文件中。SpringCloudConfig提供了两种加密解密方式,一种是对称加密,一... 查看详情

springboot/cloud应用监控

...要是监控服务及服务器的各项指标。该项目是使用了开源springboot监控项目spring-boot-admin,开源项目地址:spring-boo 查看详情

在配置文件中加密密码? [关闭]

】在配置文件中加密密码?[关闭]【英文标题】:EncryptPasswordinConfigurationFiles?[closed]【发布时间】:2010-11-1101:55:00【问题描述】:我有一个程序可以从配置文件中读取服务器信息,并希望加密该配置中的密码,以便我的程序可以... 查看详情

如何在delphi软件中实现对配置文件的加密解密

如何在Delphi软件中实现对配置文件的加密解密谁来说说给文件加密,你可以在百度上下载超级加密3000这是一款功能强大的文件和文件夹加密和保护软件。超级加密3000有超快和最强的文件、文件夹加密功能、数据保护功能,文件... 查看详情

我们可以加密整个配置文件吗?

】我们可以加密整个配置文件吗?【英文标题】:Canweencrypttheentireconfigfile?【发布时间】:2012-01-0301:48:33【问题描述】:是否可以加密整个app.config文件,而不是使用VB.Net加密配置文件的任何特定部分?【问题讨论】:请查看您之... 查看详情

加密配置文件以进行部署

】加密配置文件以进行部署【英文标题】:Encryptingconfigfilesfordeployment【发布时间】:2010-10-0812:02:45【问题描述】:我有一个从app.config读取的Windows服务。我希望对某些设置进行加密,但是,我不想使用.NET中提供的ProtectedConfigurati... 查看详情

配置文件 - 加密连接字符串

】配置文件-加密连接字符串【英文标题】:Configurationfile-encryptingconnectionstring【发布时间】:2020-06-2510:51:15【问题描述】:我正在尝试开发一个连接到SQL数据库的C#Winform应用程序。到目前为止,我能够将最敏感的数据从我的XML配... 查看详情

是时候给大家介绍springboot/cloud背后豪华的研发团队了。

...发展历史,这尼玛就是一场商业大片呀。我们刚开始学习SpringBoot的时候肯定都会看到这么一句话:SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。这里的Pivotal团队肯定就是Sp... 查看详情

springcloudspringbootmybatis分布式微服务云架构使用intellij中的springinitializr来快速构建springboot/cloud工程

在之前的所有SpringBoot和SpringCloud相关博文中,都会涉及SpringBoot工程的创建。而创建的方式多种多样,我们可以通过Maven来手工构建或是通过脚手架等方式快速搭建。本文我们将介绍嵌入的Intellij中的SpringInitializr工具,它同Web提供... 查看详情

禁用 Spring Boot/Cloud 中的功能

】禁用SpringBoot/Cloud中的功能【英文标题】:DisablefeaturesintoSpringBoot/Cloud【发布时间】:2021-09-2408:28:40【问题描述】:我感兴趣的是可以禁用SpringBoot/Cloud中未使用的功能吗?如果没有办法删除很多必要的功能?你知道一些如何进... 查看详情

加密配置文件中的配置项(代码片段)

背景:在配置文件中有些配置如:数据库密码等,为了安全起见需要进行加密,不过在其他程序读取这些配置项的时候需要得到真实的值。解决方案:继承Spring的PropertyPlaceholderConfigurer类重写convertProperty方法importcom.util.StringUtil;im... 查看详情

如何加密或隐藏配置文件c#

】如何加密或隐藏配置文件c#【英文标题】:Howtoencryptorhideconfigfilec#【发布时间】:2021-12-0312:33:21【问题描述】:这是我想加密或隐藏密码值的MyConfig文件代码,但我不知道该怎么做。我已经使用了安全应用配置,但它给了我一... 查看详情

以编程方式加密 .NET 中的配置文件

】以编程方式加密.NET中的配置文件【英文标题】:Programmaticallyencryptingaconfig-filein.NET【发布时间】:2010-09-0612:33:49【问题描述】:有人可以简要介绍一下如何在.NET中以编程方式加密配置文件,最好是在C#中。我想做的是对应用程... 查看详情

配置文件信息加解密方案(jasypt)(代码片段)

...1a;jasypt的GitHub官方网址jasypt加密Jasypt开源加密库使用教程SpringBoot配置文件中密码属性加密概述Jasypt全称JavaSimplifiedEncryption,是Sourceforge.net上的一个开源项目。Jasypt可用于加密任务与应用程序,例如加密密码、敏感信息和... 查看详情

nacos配置中心对配置文件内容进行加密(代码片段)

加密主要是针对于配置文件当中的配置,存储到数据库的时候,加密成密文。然后Nacos展示出来的是明文。因为我们有时候会在配置文件存储很多敏感信息,例如数据库连接方式,或者第三方存储系统的相关信息... 查看详情