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

  • 相关阅读:
    安卓系统隐藏滚动条
    jquery 失去焦点时输入框为空时自动填写默认内容
    移动端左右滑动代码
    [转]C#使用FFmpeg 将视频格式转换成MP4示例
    [转]Windows 使用ffmpeg将MP4视频转换为m3u8格式
    [转]搭建flutter开发环境
    [转]ios webview下纯JS实现长按
    [转]SQLServer查询数据库各种历史记录
    [转]Java多线程学习(总结很详细!!!)
    [转]安卓加固之so文件加固
  • 原文地址:https://www.cnblogs.com/cuijinlong/p/15215921.html
Copyright © 2020-2023  润新知