| | |
| | | package com.panzhihua.common.model.helper; |
| | | |
| | | import javax.crypto.Cipher; |
| | | import javax.crypto.SecretKey; |
| | | import javax.crypto.SecretKeyFactory; |
| | | import javax.crypto.*; |
| | | import javax.crypto.spec.IvParameterSpec; |
| | | import javax.crypto.spec.PBEKeySpec; |
| | | import javax.crypto.spec.SecretKeySpec; |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.security.InvalidKeyException; |
| | | import java.security.MessageDigest; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.security.spec.KeySpec; |
| | |
| | | |
| | | |
| | | /** |
| | | * AES 128 加密 |
| | | * AES 128(base64)加密 |
| | | * @param strToEncrypt 要加密的字符串 |
| | | * @param secret 秘钥 |
| | | * @return 加密后的字符串 |
| | | */ |
| | | public static String encrypt128(String strToEncrypt, String secret) |
| | | { |
| | | try |
| | | { |
| | | setKey(secret); |
| | | Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); |
| | | cipher.init(Cipher.ENCRYPT_MODE, secretKey); |
| | | return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8"))); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | System.out.println("Error while encrypting: " + e.toString()); |
| | | } |
| | | return null; |
| | | public static String encrypt128(String strToEncrypt, String secret) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, BadPaddingException, IllegalBlockSizeException { |
| | | setKey(secret); |
| | | Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); |
| | | cipher.init(Cipher.ENCRYPT_MODE, secretKey); |
| | | return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8"))); |
| | | } |
| | | |
| | | /** |
| | | * AES 128 解密 |
| | | * AES 128(base64) 解密 |
| | | * @param strToDecrypt 要解密的字符串 |
| | | * @param secret 秘钥 |
| | | * @return 解密后的字符串 |
| | | */ |
| | | public static String decrypt128(String strToDecrypt, String secret) |
| | | { |
| | | try |
| | | { |
| | | setKey(secret); |
| | | Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING"); |
| | | cipher.init(Cipher.DECRYPT_MODE, secretKey); |
| | | return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt))); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | System.out.println("Error while decrypting: " + e.toString()); |
| | | } |
| | | return null; |
| | | public static String decrypt128(String strToDecrypt, String secret) throws NoSuchPaddingException, NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException, InvalidKeyException { |
| | | setKey(secret); |
| | | Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING"); |
| | | cipher.init(Cipher.DECRYPT_MODE, secretKey); |
| | | return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt))); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | |
| | | Arrays.stream(originalString).forEach(os ->{ |
| | | String encryptedString = AESUtil.encrypt128(os, key); |
| | | String decryptedString = AESUtil.decrypt128(encryptedString, key); |
| | | try { |
| | | String encryptedString = AESUtil.encrypt128(os, key); |
| | | String decryptedString = AESUtil.decrypt128(encryptedString, key); |
| | | |
| | | System.out.println(os); |
| | | System.out.println(encryptedString); |
| | | System.out.println(decryptedString); |
| | | |
| | | |
| | | System.out.println(os); |
| | | System.out.println(encryptedString); |
| | | System.out.println(decryptedString); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | | }); |
| | | } |
| | | } |