- /**
- * AES加密
- * @param content 需要加密的内容 *
- * @param key 加密密码 *
- * @return
- */
- public static byte[] encrypt(byte[] content, String key) {
- try {
- KeyGenerator kgen = KeyGenerator.getInstance("AES");
- kgen.init(128, new SecureRandom(key.getBytes()));
- SecretKey secretKey = kgen.generateKey();
- byte[] enCodeFormat = secretKey.getEncoded();
- SecretKeySpec keySpec = new SecretKeySpec(enCodeFormat, "AES");
- Cipher cipher = Cipher.getInstance("AES");// 创建密码器
- byte[] byteContent = content;
- cipher.init(Cipher.ENCRYPT_MODE, keySpec);// 初始化
- byte[] result = cipher.doFinal(byteContent);
- 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;
- }
- /**
- * AES解密
- * @param content 待解密内容
- * @param key解密密钥
- * @return
- */
- public static byte[] decrypt(byte[] content, String key) {
- try {
- KeyGenerator kgen = KeyGenerator.getInstance("AES");
- kgen.init(128, new SecureRandom(key.getBytes()));
- SecretKey secretKey = kgen.generateKey();
- byte[] enCodeFormat = secretKey.getEncoded();
- SecretKeySpec keySpec = new SecretKeySpec(enCodeFormat, "AES");
- Cipher cipher = Cipher.getInstance("AES");// 创建密码器
- cipher.init(Cipher.DECRYPT_MODE, keySpec);// 初始化
- 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 object2String(Object o) throws Exception {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos);
- oos.writeObject(o);
- byte[] byteArray = baos.toByteArray();
- byteArray = encrypt(byteArray,key);
- String str = Base64.encode(byteArray);
- return str;
- }
- /**
- * 字串转换成对象
- */
- public static Object string2Object(String info) throws Exception {
- byte[] byteArray = Base64.decode(info);
- byteArray = decrypt(byteArray,key);
- ByteArrayInputStream bais = new ByteArrayInputStream(byteArray);
- ObjectInputStream ois = new ObjectInputStream(bais);
- return ois.readObject();
- }
2012年3月11日星期日
对象序列反序列化AES加密后Base64处理
订阅:
博文评论 (Atom)
没有评论:
发表评论