zoukankan      html  css  js  c++  java
  • 加解密工具类

    import com.for.vsolution.hx.travel.common.constant.EncryptionTypeEnum;
    import com.for.vsolution.hx.travel.common.constant.MyRuntimeException;
    import com.for.vsolution.hx.travel.common.util.encrypt.Aes256EncryptUtils;
    import com.for.vsolution.hx.travel.common.util.encrypt.AesEncryptUtil;
    import com.for.vsolution.hx.travel.common.util.encrypt.MD5Util;
    import com.for.vsolution.hx.travel.common.util.encrypt.RsaUtil;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;

    /**
    * @description: 加解密工具类
    * @date: 2019-08-26 14:17
    */

    @Component
    public class EncryptionUtil {


    @Value("${rsa.publicKey}")
    private String publicKey;
    @Value("${rsa.privateKey}")
    private String privateKey;

    /**
    * 加密
    * @param dataSource
    * @param encryptionType
    * @return
    */
    public String encryption(String dataSource, EncryptionTypeEnum encryptionType){
    if (StringUtils.isBlank(dataSource)){
    return null;
    }
    String encrypt=null;
    try {
    switch (encryptionType){
    case AES:
    encrypt = AesEncryptUtil.encrypt(dataSource);
    break;
    case MD5:
    encrypt = MD5Util.MD5(dataSource);
    break;
    case RSA:
    encrypt = RsaUtil.encryptByPubKey(dataSource,publicKey);
    break;
    case AES256:
    encrypt = Aes256EncryptUtils.encrypt(dataSource);
    break;
    default:
    break;
    }
    }catch (Exception e){
    throw new MyRuntimeException("加密异常");
    }
    return encrypt.trim();
    }

    public String decryption(String dataSource,EncryptionTypeEnum encryptionType){

    if (StringUtils.isBlank(dataSource)){
    return null;
    }
    String encrypt=null;
    try {
    switch (encryptionType){
    case AES:
    encrypt = AesEncryptUtil.desEncrypt(dataSource);
    break;
    case MD5:
    throw new MyRuntimeException("MD5无法解密");
    case RSA:
    encrypt = RsaUtil.decryptByPriKey(dataSource,privateKey);
    break;
    case AES256:
    encrypt = Aes256EncryptUtils.desEncrypt(dataSource);
    break;
    default:
    break;
    }
    }catch (Exception e){
    e.printStackTrace();
    return dataSource;
    }
    return encrypt.trim();
    }

    public static void main(String[] args) {

    EncryptionUtil encryptionUtil = new EncryptionUtil();
    String name = encryptionUtil.decryption("ppp02125166", EncryptionTypeEnum.AES256);
    System.out.println("+++++++++++++++++++++" + name);

    }

    }
  • 相关阅读:
    java 的三种代理模式 (二)——子函数切面
    王者荣耀为什么不使用微服务架构,服务的极简主义,为什么交易网关使用redis做持久
    tcp_syncookies 半连接
    tcp_tw_recycle tcp_tw_reuse与timewait【yetdone】
    动态代理,没有被代理对象
    一次jstack解决update停顿
    动态代理反向
    注解的继承
    51单片机状态机键盘检测
    28335scififo中断接收与发送
  • 原文地址:https://www.cnblogs.com/pxzbky/p/12105818.html
Copyright © 2011-2022 走看看