zoukankan      html  css  js  c++  java
  • AES加密解密

    package com.tianwen.springcloud.open.space.utils;
    
    
    import java.nio.charset.StandardCharsets;
    
    import javax.crypto.Cipher;
    import javax.crypto.spec.IvParameterSpec;
    import javax.crypto.spec.SecretKeySpec;
    
    import org.apache.commons.codec.binary.Base64;
    import org.apache.commons.lang3.StringUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    /**
     * AES解密密码
     *
     * @author Administrator
     */
    public class AESUtil
    {
        private static final Logger logger = LoggerFactory.getLogger(AESUtil.class);
    
        private final static String KEY = "d12acfcbea4f9631";
    
        private final static String IV = "tianwen@eco12345";
    
        public static String desEncrypt(String data)
        {
            try
            {
                byte[] encrypted1 = new Base64().decode(data);
                Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
                SecretKeySpec keyspec = new SecretKeySpec(KEY.getBytes(), "AES");
                IvParameterSpec ivspec = new IvParameterSpec(IV.getBytes());
    
                cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec);
    
                byte[] original = cipher.doFinal(encrypted1);
                return StringUtils.trim(new String(original, StandardCharsets.UTF_8));
            }
            catch (Exception e)
            {
                logger.error("解密失败", e);
                return null;
            }
        }
    
        public static String encrypt(String data)
        {
            try
            {
                byte[] encrypted1 = data.getBytes(StandardCharsets.UTF_8);
                Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
                SecretKeySpec keyspec = new SecretKeySpec(KEY.getBytes(), "AES");
                IvParameterSpec ivspec = new IvParameterSpec(IV.getBytes());
                cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
                byte[] original = cipher.doFinal(encrypted1);
                return Base64.encodeBase64String(original);
            }
            catch (Exception e)
            {
                logger.error("加密失败", e);
                return null;
            }
        }
    
        public static void main(String[] args)
        {
            System.out.println(desEncrypt("+Qjg1e7H1Y8373WZ5tMoVz40v+SjMFfEIlwTOlIIg7Q="));
            System.out.println(encrypt("Dc_*twsM@052020&eDcbj"));
            System.out.println(encrypt("TWSM@admin2020"));
        }
    }
    编程PDF电子书免费下载: http://www.shitanlife.com/code 每天学习一点点
  • 相关阅读:
    常用公共配置类——定时任务配置
    常用公共工具类——生成token
    常用公共工具类——分页工具类(IPage)
    常用公共工具类——Shiro工具类
    常用公共工具类——Redis工具类
    fmt.sprintf,fprintf区别
    web界面不显示内容排查思路
    golang值传递和引用传递
    web开发
    聊聊crd和list-watch
  • 原文地址:https://www.cnblogs.com/scode2/p/14306895.html
Copyright © 2011-2022 走看看