使用jasypt对springboot配置信息加密

这篇具有很好参考价值的文章主要介绍了使用jasypt对springboot配置信息加密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.pom文件增加依赖

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

2.修改启动类增加StringEncryptor实现

jasypt密码可以放到配置文件或者启动命令中,与其这样不如直接写到代码里


    @Primary
    @Bean("jasyptStringEncryptor")
    public StringEncryptor stringEncryptor() {
        PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword("xxxx");//这里改成你的密码
        config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        return encryptor;
    }

注意:上面的@Primary 注解必须加上,覆盖默认实现。

3.本地写一个加密类,对你要加密的敏感信息加密

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

public class JasyptTest {

	public static void main(String[] args) {
		PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
        SimpleStringPBEConfig config = new SimpleStringPBEConfig();
        config.setPassword("xxxx");//改成你的密码
        config.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
        config.setKeyObtentionIterations("1000");
        config.setPoolSize("1");
        config.setProviderName("SunJCE");
        config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator");
        config.setIvGeneratorClassName("org.jasypt.iv.RandomIvGenerator");
        config.setStringOutputType("base64");
        encryptor.setConfig(config);
        
        String originStr = "xxxx" ;//原始字符串
        String encStr = encryptor.encrypt(originStr);
        System.out.println("originStr encrypt is {}"+ encStr);//加密后的字符串,这个贴到配置文件中
        System.out.println("originStr is {}"+ encryptor.decrypt(encStr));//验证一下解密

	}

}

4.修改配置文件

将加密后的信息用前面用 ENC( ) 包起来

例如:

原始配置:

spring.datascoure.password=yourpassword

改成:

spring.datascoure.password=ENC(JL2t1CZpj+cTQ30IFKu0lkoZCVpYbVIhLm1MRbBpaNI])

(完)

参考:

[1] https://zhuanlan.zhihu.com/p/480828512

[2] https://github.com/ulisesbocchio/jasypt-spring-boot

source: https://wangxuan.me/tech/2023/11/23/use-jasypt-to-encrypt-configs.html文章来源地址https://www.toymoban.com/news/detail-747155.html

到了这里,关于使用jasypt对springboot配置信息加密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 配置文件信息加解密方案(jasypt)

    参考: jasypt 的 GitHub 官方网址 jasypt加密 Jasypt 开源加密库使用教程 SpringBoot配置文件中密码属性加密 Jasypt 全称 Java Simplified Encryption ,是 Sourceforge.net 上的一个开源项目。 Jasypt 可用于加密任务与应用程序,例如加密密码、敏感信息和数据通信,还包括高安全性、基于标准的加

    2023年04月08日
    浏览(25)
  • jasypt-spring-boot敏感信息加密解密利器使用指南

    Springboot 整合Jasypt,实现配置信息的安全,如数据库连接.账号和密码.接口凭证信息等。 Jasypt可以为Springboot加密的信息很多,主要有: System Property 系统变量 Envirnment Property 环境变量 Command Line argument 命令行参数 Application.properties 应用配置文件 Yaml properties 应用配置文件 other

    2024年02月03日
    浏览(38)
  • SpringBoot【集成 jasypt】实现配置信息自定义加解密(自定义的属性探测和密码解析器)

    Jasypt是一个Java简易加密库,用于加密配置文件中的敏感信息,如数据库密码。它可以帮助开发人员在应用程序中加密密码、敏感信息和数据通信,还包括高安全性、基于标准的加密技术、可同时单向和双向加密的加密密码、文本、数字和二进制文件。如果您正在使用Spring B

    2024年02月05日
    浏览(33)
  • 微服务SpringBoot整合Jasypt加密工具

    Jasypt是Java加密工具包,能支持对密码的哈希加密,对文本和二进制数据的对称加解密,还能集成SpringBoot项目对配置文件中的密钥进行加密存储。 引入依赖如下: 2.1 密码加密场景 用户注册账户的时候需要输入密码,我们将密码加密后保存到数据库中,保证用户的敏感数据的

    2024年02月02日
    浏览(28)
  • 微服务nacos或者yml配置内容部分加密jasypt

    1.引入依赖(版本自定): 2.yml新增配置: 注:algorithm是加密算法,官方默认的加密算法是 PBEWITHHMACSHA512ANDAES_256,但是如果你用的是 JDK1.8,还用不了这个算法,JDK9以上才支持,所以可以把这个算法改成PBEWithMD5AndDES。 2.1.2版本默认加密方式为:PBEWithMD5AndDES 3.0.3版本默认加密

    2024年02月10日
    浏览(22)
  • Spring Boot项目使用 jasypt 加密组件进行加密(例如:数据库、服务的Key、等等进行加密)

    🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝 🍓 更多文章请点击 密码配置项都不加密? 想啥呢? 一

    2024年02月07日
    浏览(41)
  • Spring Boot使用jasypt处理数据库账号密码等数据加密问题

    在我们业务场景中,项目中的application.yml 配置文件比如数据库账号密码,的各种链接的username,password的值都是明文的,存在一定的安全隐患,可以使用jasypt 加密框架的方式进行明文加密,进而使得我们项目更加安全 注意这里排除了mybatis-plus的包可能是项目中有冲突依赖,

    2024年02月06日
    浏览(42)
  • 对SpringBoot项目配置文件进行加密

    1.SpringBoot项目pom添加maven依赖  2.使用单元测试生成加密数据 设置配置文件(bootstrap.yml或者application.yml) password:加密的盐 algorithm:加密算法,这里使用 PBEWithMD5AndDES 运行单元测试文件 执行结果:    3.在SpringBoot项目中使用 配置mysql的jdbc,使用“ENC(密文)”配置密码,其他配置

    2024年02月09日
    浏览(33)
  • SpringBoot 配置文件这样加密,才足够安全!

    在使用Springboot时,通常很多信息都是在application.yml中直接明文配置的,比如数据库链接信息,redis链接信息等等。但是这样是不安全的。 所以需要对敏感数据进行加密,这样防止密码泄露 Jasypt这个库为我们解决了这个问题,实现了springboot配置的自定加密加密 源码对应地址:

    2023年04月16日
    浏览(31)
  • Springboot实现对配置文件中的明文密码加密

    我们在 SpringBoot 项目当中,会把数据库的用户名密码等配置直接放在 yaml 或者 properties 文件中,这样维护数据库的密码等敏感信息显然是有一定风险的,如果相关的配置文件被有心之人拿到,必然会给项目造成一定的安全风险;所以为了避免明文密码被直接看到,我们有必要

    2024年02月12日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包