zoukankan      html  css  js  c++  java
  • jasypt 加密解密+自定义加密算法

    1.引用jar包

    <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. 自定义加密算法

  • 相关阅读:
    个人冲刺计划一周天详细
    软件小创意
    电梯调度小程序。
    敏捷开发一些百科。
    求二维数组的子数组中的最大值!
    求整数数组中子数组最大的和值!
    单元测试我们应该注意什么!
    分析一个文档(英语文章)中各个词出现的频率,并打印频率最高的前10个。
    有感而发
    冲刺一TD美景美图
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/15215921.html
Copyright © 2011-2022 走看看