首页>代码>java swt开发AES编码/解码工具>/dcAes/src/test/DcAesUtil.java
package test;

import org.apache.commons.codec.binary.Base64;

import javax.crypto.*;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

/**
 * Created by raymond on 2015/11/2.
 */
public class DcAesUtil {
    private static final String KEY = "amRoZmR1ODRyODRvamZ5Nw==";
//    private static final String SKEY = "amRoZmR1ODRyODRvamZ5Nw==amRoZmR1ODRyODRvamZ5Nw==";

    /**
     * 加密
     *
     * @param content 需要加密的内容
     * @return
     */
    public static byte[] encrypt(String content) {
        SecureRandom random = null;
        try {
            random = SecureRandom.getInstance("SHA1PRNG");
            random.setSeed(KEY.getBytes());
        } catch (NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        }

        try {
            KeyGenerator kgen = KeyGenerator.getInstance("AES");
            kgen.init(128, random);
            SecretKey secretKey = kgen.generateKey();
            byte[] enCodeFormat = secretKey.getEncoded();
            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
            byte[] byteContent = content.getBytes("utf-8");
            cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
            byte[] result = cipher.doFinal(byteContent);
            return result; // 加密
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IllegalBlockSizeException e) {
            e.printStackTrace();
        } catch (BadPaddingException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 解密
     *
     * @param content 待解密内容
     * @return
     */
    public static byte[] decrypt(byte[] content) {
        SecureRandom random = null;
        try {
            random = SecureRandom.getInstance("SHA1PRNG");
            random.setSeed(KEY.getBytes());
        } catch (NoSuchAlgorithmException e1) {
            e1.printStackTrace();
        }
        try {
            KeyGenerator kgen = KeyGenerator.getInstance("AES");
            // kgen.init(128, new SecureRandom(password.getBytes()));
            kgen.init(128, random);
            SecretKey secretKey = kgen.generateKey();
            byte[] enCodeFormat = secretKey.getEncoded();
            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
            cipher.init(Cipher.DECRYPT_MODE, key);// 初始化
            byte[] result = cipher.doFinal(content);
            return result; // 加密
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (NoSuchPaddingException e) {
            e.printStackTrace();
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (IllegalBlockSizeException e) {
            e.printStackTrace();
        } catch (BadPaddingException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String encodeAesBase64(String content) {
        byte[] byteArray = DcAesUtil.encrypt(content);
        char[] baseArray = Base64EncodeUtil.encode(byteArray);
        return new String(baseArray);
    }

    public static String decoderAesBase64(String content) {
        byte[] byteArray = Base64.decodeBase64(content);
        byte[] resultArray = DcAesUtil.decrypt(byteArray);
        return new String(resultArray);
    }

   /* public static void main(String[] args) {
        //加密
    	//System.out.println("加密前:"+"dc2015");
    	System.out.println("加密前:"+"abcd");
       // System.out.println("加密后:"+encodeAesBase64("dc2015"));
        System.out.println("加密后:"+encodeAesBase64("abcd"));
        //System.out.println("解密后:"+decoderAesBase64("wRPOki8ykaeV568CsOfZrg"));
       // System.out.println("解密后:"+decoderAesBase64("wRPOki8ykaeV568CsOfZrg"));
    }*/

}
最近下载更多
1358849392  LV21 2023年5月31日
zzuljh  LV9 2021年12月16日
zyzyzy1  LV1 2021年5月6日
yinfengdu  LV1 2020年3月24日
569kk55  LV1 2019年10月17日
莫名奇妙的帅  LV4 2019年9月24日
假的假的假的  LV10 2019年6月16日
lhhcxy  LV7 2019年5月8日
ALDe先森  LV8 2018年12月21日
YYJplus  LV11 2018年6月5日
最近浏览更多
qq1176648922  LV6 2022年10月24日
1358849392  LV21 2022年10月21日
1435792946  LV1 2022年5月9日
zzuljh  LV9 2021年12月16日
a5366869  LV7 2021年9月20日
itcaizhe  LV9 2021年7月26日
1798672867  LV21 2021年7月18日
lris_luanling  LV11 2021年5月27日
wwkddjjj  LV8 2021年5月9日
zyzyzy1  LV1 2021年5月6日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友