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(); } }