jasypt 加密解密+自定义加密算法

1.引用jar包

gradle:
implementation group: 'com.github.ulisesbocchio', name: 'jasypt-spring-boot-starter', version: '3.0.3'

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

2.在application.yml文件中加入配置信息

#数据库配置文件加密
jasypt:
  encryptor:
    ## 实现jasypt加密解密的类
    bean: desencrypt

对数据库密码加密,使用 ENC() 包裹起来,然后里面放置密文

###################################################
#                     数据库配置                                                      #
###################################################
# 数据库驱动
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
# 数据库链接
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:orcl
# 数据库用户名
spring.datasource.username=NR
# 数据库密码
spring.datasource.password=ENC(TLI=)
# 数据源连接池中最大连接数
spring.datasource.hikari.maximum-pool-size=50

3.加密解密类

import gov.cnao.security.service.EncryptDecryptService;
import gov.cnao.security.service.impl.EncryptDecryptServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.jasypt.encryption.StringEncryptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;

@Component("desencrypt")
public class NrStringEncryptor implements StringEncryptor {
    private static Logger logger = LoggerFactory.getLogger(NrStringEncryptor.class);

    private EncryptDecryptService encryptDecryptService = new EncryptDecryptServiceImpl();

    @Override
    public String encrypt(String message) {
        if (StringUtils.isNotBlank(message)){
            try {
                logger.info("加密前密码:"+message);
                message = encryptDecryptService.encrypt(message);
                logger.info("加密后密码:"+message);
                logger.info("配置信息加密成功!");
            } catch (Exception e) {
                logger.error("配置信息加密失败!");
            }
        }
        return message;
    }

    @Override
    public String decrypt(String encryptedMessage) {
        if (StringUtils.isNotBlank(encryptedMessage)){
            try {
                logger.info("解密前密码:"+encryptedMessage);
                encryptedMessage = encryptDecryptService.decrypt(encryptedMessage);
                logger.info("解密后密码:"+encryptedMessage);
                logger.info("配置信息解密成功!");
            } catch (Exception e) {
                logger.error("配置信息解密失败!");
            }
        }
        return encryptedMessage;
    }
}

4. 自定义加密算法

jar包:算法包

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值