| | |
| | | package com.panzhihua.common.utlis; |
| | | |
| | | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.nio.charset.StandardCharsets; |
| | | 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.SecretKey; |
| | | import javax.crypto.*; |
| | | import javax.crypto.spec.SecretKeySpec; |
| | | |
| | | public class AES { |
| | |
| | | byte[] enCodeFormat = secretKey.getEncoded(); |
| | | SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); |
| | | Cipher cipher = Cipher.getInstance("AES");// 创建密码器 |
| | | byte[] byteContent = content.getBytes("utf-8"); |
| | | byte[] byteContent = content.getBytes(StandardCharsets.UTF_8); |
| | | cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 |
| | | byte[] result = cipher.doFinal(byteContent); |
| | | return result; // 加密 |
| | |
| | | } catch (NoSuchPaddingException e) { |
| | | e.printStackTrace(); |
| | | } catch (InvalidKeyException e) { |
| | | e.printStackTrace(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } catch (IllegalBlockSizeException e) { |
| | | e.printStackTrace(); |
| | |
| | | * @param buf |
| | | * @return |
| | | */ |
| | | public static String parseByte2HexStr(byte buf[]) { |
| | | public static String parseByte2HexStr(byte[] buf) { |
| | | StringBuffer sb = new StringBuffer(); |
| | | for (int i = 0; i < buf.length; i++) { |
| | | String hex = Integer.toHexString(buf[i] & 0xFF); |
| | |
| | | try { |
| | | SecretKeySpec key = new SecretKeySpec(password.getBytes(), "AES"); |
| | | Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding"); |
| | | byte[] byteContent = content.getBytes("utf-8"); |
| | | byte[] byteContent = content.getBytes(StandardCharsets.UTF_8); |
| | | cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 |
| | | byte[] result = cipher.doFinal(byteContent); |
| | | return result; // 加密 |
| | |
| | | } catch (NoSuchPaddingException e) { |
| | | e.printStackTrace(); |
| | | } catch (InvalidKeyException e) { |
| | | e.printStackTrace(); |
| | | } catch (UnsupportedEncodingException e) { |
| | | e.printStackTrace(); |
| | | } catch (IllegalBlockSizeException e) { |
| | | e.printStackTrace(); |
| | |
| | | byte[] decode = parseHexStr2Byte(code); |
| | | // 解密 |
| | | byte[] decryptResult = decrypt(decode, password); |
| | | System.out.println("解密后:" + new String(decryptResult, "UTF-8")); //不转码会乱码 |
| | | System.out.println("解密后:" + new String(decryptResult, StandardCharsets.UTF_8)); // 不转码会乱码 |
| | | |
| | | } |
| | | } |