| | |
| | | package com.yeshi.buwan.util; |
| | | |
| | | import javax.crypto.*; |
| | | import javax.crypto.spec.SecretKeySpec; |
| | | 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"; |
| | | 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"); |
| | | 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(); |
| | | } |
| | | // 创建密码器 |
| | | Cipher cipher = Cipher.getInstance("AES"); |
| | | byte[] byteContent = content.getBytes("utf-8"); |
| | | // 初始化 |
| | | cipher.init(Cipher.ENCRYPT_MODE, key); |
| | | // 加密 |
| | | byte[] result = cipher.doFinal(byteContent); |
| | | return StringUtil.getBase64FromByte(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); |
| | | /* |
| | | * 注意:解密的时候要传入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); |
| | | 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(); |
| | | } |
| | | 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); |
| | | 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(); |
| | | } |
| | | 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(); |
| | | } |
| | | |
| | | } |