栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jasypt-spring-boot-starter参数加解密

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jasypt-spring-boot-starter参数加解密

文章目录
  • jasypt-spring-boot-starter参数加解密
    • 1 自定义
      • 1.1 导包
      • 1.2 启动开关
      • 1.3 code

jasypt-spring-boot-starter参数加解密

原理:SpringBoot 加载.yml,.properties配置文件的数据,进行一步加解密的操作。

1 自定义 1.1 导包
        
        
            com.github.ulisesbocchio
            jasypt-spring-boot-starter
            3.0.3
        

1.2 启动开关
@EnableEncryptableProperties
1.3 code
import com.ulisesbocchio.jasyptspringboot.EncryptablePropertyDetector;
import org.apache.commons.lang3.StringUtils;
import org.jasypt.encryption.StringEncryptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class JasyptConfiguration {

    private static String START_PREFIX_MD5 = "MD5(";
    private static String END_SUFFIX_MD5 = ")";

    //这里的名字必须是jasyptStringEncryptor,不能改动
    @Bean(name = "jasyptStringEncryptor")
    public StringEncryptor stringEncryptor(MyEncryptablePropertyDetector encryptablePropertyDetector) {
        return encryptablePropertyDetector;
    }

    //这里的名字必须是encryptablePropertyDetector,不能改动
    @Bean(name = "encryptablePropertyDetector")
    public MyEncryptablePropertyDetector myEncryptablePropertyDetector() {
        return new MyEncryptablePropertyDetector();
    }

    private class MyEncryptablePropertyDetector implements EncryptablePropertyDetector, StringEncryptor {

        
        @Override
        public boolean isEncrypted(String s) {
            if (StringUtils.isNotBlank(s) &&
                    s.toUpperCase().startsWith(START_PREFIX_MD5)
                    && s.toUpperCase().endsWith(END_SUFFIX_MD5)) {
                return true;
            }
            return false;
        }

        
        @Override
        public String unwrapEncryptedValue(String s) {
            return s;
        }

        
        @Override
        public String encrypt(String s) {
            return s;
        }

        
        @Override
        public String decrypt(String s) {
            int prefixIndex = s.indexOf(START_PREFIX_MD5);
            int suffixIndex = s.indexOf(END_SUFFIX_MD5);
            String result = s.substring(prefixIndex + START_PREFIX_MD5.length(), suffixIndex);
            return result;
        }
    }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号