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);

    }

    }
  • 相关阅读:
    深入探析c# Socket
    异步上传文件并获得返回值(完全跨域)
    ASP.NET MVC的Model元数据与Model模板:模板的获取与执行策略
    数值压缩存储方法Varint
    JavaIO知识总结2
    ASP.NET MVC URL重写与优化
    检测是否为HTML5新标签
    Context+ContextScope——这是否可以看作一种设计模式?
    体验vs11 Beta
    选择实现—简单工厂
  • 原文地址:https://www.cnblogs.com/pxzbky/p/12105818.html
Copyright © 2011-2022 走看看