首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-10-15 
对象序列反序列化AES加密后Base64处理/** * AES加密 * @param content 需要加密的内容 * * @param key 加

对象序列反序列化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();}


热点排行