AES加密工具类

import it.sauronsoftware.base64.Base64;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;

/** DES 加密的一种,加密秘钥长度为16位.
 */
public class AESC {
    private static final String ALGORITHM = "AES";
    /**
     * 16位的key.
     */
    private static final String KEY = "jsswlhfax_123456";

    /**
     * 加密文本(UTF-8编码)
     * @param text 待加密的字符串
     * @return 加密后的字符串
     */
    public static String encrypt(String text) {
        try {
            Cipher c = Cipher.getInstance(ALGORITHM);
            c.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(KEY.getBytes(), ALGORITHM));
            byte[] data = c.doFinal(text.getBytes("UTF-8"));
            return new String(Base64.encode(data));
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    /**
     * 解密文本(UTF-8编码)
     * @param text 待解秘的字符串
     * @return 解密后的字符串
     */
    public static String decrypt(String text) {
        try {
            Cipher c = Cipher.getInstance(ALGORITHM);
            c.init(Cipher.DECRYPT_MODE, new SecretKeySpec(KEY.getBytes(), ALGORITHM));
            byte[] data = c.doFinal(Base64.decode(text.getBytes()));
            return new String(data, "UTF-8");
        } catch (Exception e) {
            return null;
        }
    }

    public static void main(String aggs[]) {
        long start = System.currentTimeMillis();
        for(int i=0;i<100;i++){
            System.out.println(encrypt("中国"+i));
            encrypt("中国"+i);
        }
        System.out.println("花费时间:"+(System.currentTimeMillis()-start));

        //System.out.println(decrypt("CxS8ZR/08vasO4WrYBMFSg=="));
    }
}

posted on 2017-07-25 18:51  wgwyanfs  阅读(197)  评论(0编辑  收藏  举报

导航