读书人

对象序列反序列化AES加密后Base64处置

发布时间: 2012-10-15 09:45:25 作者: rapoo

对象序列反序列化AES加密后Base64处理

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


读书人网 >编程

热点推荐