zoukankan      html  css  js  c++  java
  • AES对称加密算法

    package cn.jsonlu.passguard.utils;
    
    
    import org.apache.commons.codec.binary.Base64;
    
    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    
    /**
     * @author JsonLu
     * @email jsonlu@qq.com
     * @since 2016/1/5 17:34
     */
    public class AESUtil {
    
        /**
         * 密钥
         */
        public static final String KEY = "0123456789012345";
    
        /**
         * @param input
         * @param key
         * @return
         */
        public static String encrypt(String input, String key) {
            byte[] crypted = null;
            try {
                SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES");
                Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
                cipher.init(Cipher.ENCRYPT_MODE, skey);
                crypted = cipher.doFinal(input.getBytes());
            } catch (Exception e) {
                System.out.println(e.toString());
            }
            return new String(Base64.encodeBase64(crypted));
        }
    
        /**
         * @param input
         * @param key
         * @return
         */
        public static String decrypt(String input, String key) {
            byte[] output = null;
            try {
                SecretKeySpec skey = new SecretKeySpec(key.getBytes(), "AES");
                Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
                cipher.init(Cipher.DECRYPT_MODE, skey);
                output = cipher.doFinal(Base64.decodeBase64(input));
            } catch (Exception e) {
                System.out.println(e.toString());
            }
            return new String(output);
        }
    
        public static void main(String[] args) {
            String key = "1234567891234567";
            String data = "i_love_coder";
            System.out.println(AESUtil.decrypt(AESUtil.encrypt(data, key), key));
            System.out.println(AESUtil.encrypt(data, key));
        }
    }
  • 相关阅读:
    BZOJ 1968: [Ahoi2005]COMMON 约数研究
    BZOJ 2463: [中山市选2009]谁能赢呢?
    BZOJ 2462: [BeiJing2011]矩阵模板
    hihoCoder 后缀自动机三·重复旋律6
    hihoCoder #1445 : 后缀自动机二·重复旋律5
    BZOJ 2179: FFT快速傅立叶
    BZOJ 3926: [Zjoi2015]诸神眷顾的幻想乡
    BZOJ 2946: [Poi2000]公共串
    BZOJ 2882: 工艺
    SPOJ LCS2
  • 原文地址:https://www.cnblogs.com/Jsonlu/p/5211881.html
Copyright © 2011-2022 走看看