package com.newvideo.util;
|
|
import java.io.UnsupportedEncodingException;
|
import java.security.InvalidKeyException;
|
import java.security.NoSuchAlgorithmException;
|
import java.security.SecureRandom;
|
|
import javax.crypto.BadPaddingException;
|
import javax.crypto.Cipher;
|
import javax.crypto.IllegalBlockSizeException;
|
import javax.crypto.KeyGenerator;
|
import javax.crypto.NoSuchPaddingException;
|
import javax.crypto.spec.SecretKeySpec;
|
|
/**
|
* AES���ܽ���
|
*
|
* @author Administrator
|
*
|
*/
|
public class AESUtil {
|
|
private final static String KEY = "1234567890123456";
|
|
public static String encrypt(String content) {
|
try {
|
// KeyGenerator�ṩ�Բ���Կ������Ĺ���,֧�ָ����㷨
|
KeyGenerator kgen = KeyGenerator.getInstance("AES");
|
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
|
secureRandom.setSeed(KEY.getBytes());
|
kgen.init(128, secureRandom);
|
// SecretKey ���𱣴�Գ���Կ
|
SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES");
|
|
// ����������
|
Cipher cipher = Cipher.getInstance("AES");
|
byte[] byteContent = content.getBytes("utf-8");
|
// ��ʼ��
|
cipher.init(Cipher.ENCRYPT_MODE, key);
|
// ����
|
byte[] result = cipher.doFinal(byteContent);
|
return (new sun.misc.BASE64Encoder()).encode(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 new String();
|
}
|
|
/*
|
* ע�⣺���ܵ�ʱ��Ҫ����byte���� ����
|
*
|
* @param content ���������
|
*
|
* @param password ������Կ
|
*
|
* @return
|
*/
|
// public String decrypt(byte[] content, String password) {
|
public static String decrypt(String contentStr) {
|
try {
|
byte[] content = (new sun.misc.BASE64Decoder()).decodeBuffer(contentStr);
|
|
KeyGenerator kgen = KeyGenerator.getInstance("AES");
|
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
|
secureRandom.setSeed(KEY.getBytes());
|
kgen.init(128, secureRandom);
|
|
SecretKeySpec key = new SecretKeySpec(KEY.getBytes(), "AES");
|
// ����������
|
Cipher cipher = Cipher.getInstance("AES");
|
// ��ʼ��
|
cipher.init(Cipher.DECRYPT_MODE, key);
|
// ����
|
byte[] result = cipher.doFinal(content);
|
return new String(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();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return new String();
|
}
|
|
public static String decrypt(byte[] contentStr, String k) {
|
try {
|
byte[] content = contentStr;
|
KeyGenerator kgen = KeyGenerator.getInstance("AES");
|
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
|
secureRandom.setSeed(k.getBytes());
|
kgen.init(128, secureRandom);
|
|
SecretKeySpec key = new SecretKeySpec(k.getBytes(), "AES");
|
// ����������
|
Cipher cipher = Cipher.getInstance("AES");
|
// ��ʼ��
|
cipher.init(Cipher.DECRYPT_MODE, key);
|
// ����
|
byte[] result = cipher.doFinal(content);
|
return new String(result, "utf-8");
|
} 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();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return new String();
|
}
|
|
}
|