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

前言-与正文无关

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

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

        

效果

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

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

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博客

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

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Jasypt(Java Simplified Encryption)是一个Java加密库,它可以用来加密/解密文本、哈希密码等。Spring Boot提供了对Jasypt的支持,可以在应用程序中轻松使用Jasypt加密敏感信息。下面是使用Jasypt对MySQL配置文件进行加密的步骤: 1. 引入Jasypt依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency> ``` 2. 配置加密 在application.properties或者application.yml中添加以下配置: ```properties jasypt.encryptor.password=your_password ``` 其中,your_password是用来加密敏感信息的密码。 3. 加密MySQL配置信息 在application.properties或者application.yml中加入MySQL配置信息,如下: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root ``` 将密码部分使用Jasypt进行加密,如下: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=ENC(加密后的密码) ``` 其中,加密后的密码可以使用Jasypt提供的加密工具进行加密。例如,我们可以使用以下命令生成加密后的密码: ``` java -cp jasypt-1.9.2.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="root" password="your_password" algorithm=PBEWithMD5AndDES ``` 其中,jasypt-1.9.2.jar是Jasypt的jar包,your_password是用来加密敏感信息的密码。执行以上命令后,会输出加密后的密码。 4. 配置解密 在启动应用程序时,Spring Boot会自动解密加密的敏感信息。因此,我们不需要任何额外的配置来解密MySQL密码。只需将加密后的密码放入配置文件即可。 至此,我们已经成功地使用Jasypt对MySQL配置文件进行了加密

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A乐神

恭喜发财啊,老板,嘻嘻!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值