springboot数据库密码加密-使用自定义加密算法

时间:2021-06-24 18:11:09   收藏:0   阅读:0

jasypt是一个简单方便的第三方加解密库,可以快速的集成到springboot环境中

  1. 引入依赖
     <!-- 数据库加密 -->
    <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>3.0.2</version>
    </dependency>
    <!-- SM4 -->
    <dependency>
           <groupId>org.bouncycastle</groupId>
           <artifactId>bcpkix-jdk15on</artifactId>
           <version>1.60</version>
    </dependency>
    <dependency>
           <groupId>cn.hutool</groupId>
           <artifactId>hutool-all</artifactId>
           <version>5.5.9</version>
    </dependency>
  2. 编写自定义的加解密工具类(这里使用SM4加密算法,引用的是hutool的工具类)
    import org.jasypt.encryption.StringEncryptor;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;
    
    import cn.hutool.core.util.CharsetUtil;
    import cn.hutool.crypto.SmUtil;
    import cn.hutool.crypto.symmetric.SymmetricCrypto;
    
    /**
     * jasypt 自定义数据库密码加密器 - SM4加密算法
     * 
     * @author jiaqiankun
     */
    @Component("customStringEncryptor")
    public class CustomStringEncryptor implements StringEncryptor {
    
        @Value("${jasypt.encryptor.salt}")
        private String salt;
    
        @Override
        public String encrypt(String message) {
            SymmetricCrypto sm4 = SmUtil.sm4(salt.getBytes());
            String encryptHex = sm4.encryptHex(message);
            return encryptHex;
        }
    
        @Override
        public String decrypt(String encryptedMessage) {
            SymmetricCrypto sm41 = SmUtil.sm4(salt.getBytes());
            String decryptStr = sm41.decryptStr(encryptedMessage, CharsetUtil.CHARSET_UTF_8);
            return decryptStr;
        }
    
    }
  3. 在配置文件中指定自定义的加密器并定义一个salt
    #属性文件加密
    jasypt:
       encryptor:
       #salt必须为16位字符串 salt: ya024uspkidtclu3 bean: customStringEncryptor
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!