spring boot 项目中jsaypt加密的使用

​ 在我们日常开发项目的过程中,配置信息中需要用到很多用户名密码(例如数据库、redis、邮箱等),这些都是敏感信息,通常我们都是进行加密处理,而jasypt是一个通用的加解密库,在spring boot 项目中使用方便。

下面以3.0.3版本为基础,结合自己的理解,简单说下项目中如何使用 以及jasypt提供了哪几种加密算法

1.依赖引用

maven:

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

gradle:

implementation "com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.3"
  1. jasypt 添加加密信息

    (1)配置文件添加(idea工具下,其他工具类似)
    在这里插入图片描述

    (2)yml中添加配置文件

    jasypt:
      encryptor:
        # 盐加密
        password: 自定义
    

    备注:加密设置不至这些还有很多属性可以自定义:例如加密方式等

    ​ 具体可以去源码中 JasyptEncryptorConfigurationProperties 类中去查看,例如,默认加密方式为如下,自己可以进行自定义加密方式,关于PEB加密方式,可以参考这位老师的帖子:https://blog.csdn.net/ydonghao2/article/details/11038777

在这里插入图片描述

3.加密解密实现

(一般加密解密方法只在使用的时候加载即可,不会跟随项目打包)一般项目都是放在test中,还有一种直接声明new BasicTextEncryptor()的方式,自己暂时没有验证过,后续补充

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class JasyptController {

    @Autowired
    private StringEncryptor stringEncryptor;

    @Test
    public void encryption() {
        String dataName = stringEncryptor.encrypt("test");
        System.out.println("dataName:" + dataName);
    }

    @Test
    public void decryption() {
        String mailPwd = stringEncryptor.decrypt("uF5twcMmfdyBK/WGAfHiglRjsbjUHwNnvEjTSdH6eKP9oRAFKZxz7AWcMvpbEwTA");
        System.out.println("mailPwd:" + mailPwd);
    }
}

直接用 StringEncryptor 自带的加密,解密方法已经支持了大多数场景,简单便捷

4.生产环境下由于安全问题 一般将盐作为启动参数进行写入

-Djasypt.encryptor.password = 盐信息

代办:

1.jasypt中还提供了非对称加密算法,后续补充其如何使用

问题:

1.由于项目中使用了bootstrap.yml ,并在其中配置了mybatis日志的输出,但加上jasypt后不打日志了,将配置转移到application.yml后配置生效,需要后续查看加密对配置文件初始化是做了哪些操作,也希望大佬看见能够分享,帮忙解答

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值