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 每天学习一点点
  • 相关阅读:
    Qt5.3中qml ApplicationWindow设置窗口无边框问题
    解决qt5在ubuntu下无法调用fcitx输入中文的问题
    qt4.8中多线程的几种方式
    qt5.2.1在linux下去除最大化和最小化按钮
    最近玩了一下qt5.2.1,顺着写点东西,关于这个版本设置程序主窗口居中
    控制台小游戏-贪吃蛇,c++和c#版
    数据库锁机制(一)——概述
    jQuery插件编写学习+实例——无限滚动
    通过错误处理来理解三次握手和四次挥手
    发现一个木马
  • 原文地址:https://www.cnblogs.com/scode2/p/14306895.html
Copyright © 2011-2022 走看看