首页 > 其他分享 >springboot 加密配置文件指定信息 (Jasypt篇)

springboot 加密配置文件指定信息 (Jasypt篇)

时间:2024-06-22 22:31:10浏览次数:22  
标签:加密 springboot 配置文件 Jasypt 解密 encryptor password

前言-与正文无关

        生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易陷入工作的漩涡,忘记了停下脚步,感受周围的世界。让我们一起提醒自己,要适时放慢脚步,欣赏生活中的每一道风景,享受与家人朋友的温馨时光,发现那些平凡日子里隐藏的幸福时刻。因为,这些点点滴滴汇聚起来的,才是构成我们丰富多彩生活的本质。希望每个人都能在繁忙的生活中找到自己的快乐之源,不仅仅为了生存而工作,更为了更好的生活而生活。

        送你张美图!希望你开心!

        

效果

看下图我想配置文件信息中有很多被我加密的

但是呢我代码的输出结果还是源值,非常适合公司做配置文件密码加密这一块能力

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MyService {

    @Value("${db.password}")
    private String dbPassword;

    public void printPassword() {
        //输出结果是1234
        System.out.println("Decrypted DB Password: " + dbPassword);
    }
}

使用方式

        Jasypt(Java Simplified Encryption)是一个Java库,用于简化加密操作。它特别适用于保护敏感的配置数据,例如数据库密码、API密钥等。Spring Boot集成了Jasypt,可以轻松实现配置文件加密和解密。

信息加密和解密

pom.xml引入依赖

<!-- 配置文件加密 -->
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot-starter</artifactId>
    <version>2.1.0</version>
</dependency>

写一个main函数将我们的密码进行加密 

public class JasyptTest {
    private static final Logger logger = LoggerFactory.getLogger(JasyptTest.class);

    public static void main(String[] args) {
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        encryptor.setAlgorithm("PBEWITHHMACSHA512ANDAES_256");
        encryptor.setPassword("zhi");
        encryptor.setIvGenerator(new RandomIvGenerator());

        // 加密
        String encryptText = encryptor.encrypt("abc123");
        logger.info("加密后的信息:{}", encryptText);

        // 解密
        String decryptText = encryptor.decrypt(encryptText);
        logger.info("解密后的信息:{}", decryptText);
    }
}

方式一(不推荐)

盐(密码本)直接写在配置文件中

# 加密、解密信息必须存在,自己随便定义,密码界的盐
jasypt:
  encryptor:
    password: zhi
# 演示的db加密后的密码,切记一定要有ENC(),否则无法自动解析
db:
  password: ENC(5f4dcc3b5aa765d61d8327deb882cf99)

 此时获取密码时,spring项目会自动解析密码

ENC的作用

        在使用Jasypt加密配置文件中的敏感信息时,加密后的内容通常以ENC()的格式表示。这个格式告诉Spring Boot在读取配置时需要解密。例如:

db:
  password: ENC(5f4dcc3b5aa765d61d8327deb882cf99)

        这里的ENC(5f4dcc3b5aa765d61d8327deb882cf99)表示数据库密码已经被加密,Spring Boot在读取配置时会使用Jasypt解密这个值

jasypt.encryptor.password的作用

jasypt.encryptor.password 是 Jasypt 加密器的核心,它用于生成加密密钥。这个密钥用于加密和解密数据。如果没有提供这个密码,Jasypt 无法正确地加密或解密数据。

方式二

使用命令行参数

打成jar后我们可以在启动命令中添加参数

java -Djasypt.encryptor.password=your_secret_password -jar your-application.jar

------------------------------------------与正文内容无关------------------------------------
 如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!作者在这拜谢了!

混口饭吃了!如果你需要Java 、Python毕设、商务合作、技术交流、就业指导、技术支持度过试用期。请在关注私信我,本人看到一定马上回复!

这是我全部文章所在目录,看看是否有你需要的,如果遇到觉得不对地方请留言,看到后我会查阅进行改正。

A乐神-CSDN博客

关注在文章左上角,作者信息处

标签:加密,springboot,配置文件,Jasypt,解密,encryptor,password
From: https://blog.csdn.net/weixin_43895362/article/details/139871718

相关文章