123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package edu.nju.util;
- import javax.crypto.Cipher;
- import javax.crypto.spec.IvParameterSpec;
- import javax.crypto.spec.SecretKeySpec;
- import java.net.URLEncoder;
- import java.util.Base64;
- public class AESUtil {
- //偏移量
- private static String IV ="mooctestmooctest";
- //钥匙
- private static String KEY = "TESTMOOCTESTMOOC";
- //加密
- public static String encrypt(String str) {
- try {
- byte[] bytes = str.getBytes();
- IvParameterSpec ivParameterSpec = new IvParameterSpec(IV.getBytes());
- SecretKeySpec secretKeySpec = new SecretKeySpec(KEY.getBytes(), "AES");
- Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
- cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
- bytes = cipher.doFinal(bytes);
- bytes = Base64.getEncoder().encode(bytes);
- String res = new String(bytes);
- return URLEncoder.encode(res);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- //解密
- public static String decrypt(String str) {
- try {
- byte[] bytes = Base64.getDecoder().decode(str);
- IvParameterSpec ivParameterSpec = new IvParameterSpec(IV.getBytes());
- SecretKeySpec secretKeySpec = new SecretKeySpec(KEY.getBytes(), "AES");
- Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
- cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
- bytes = cipher.doFinal(bytes);
- return new String(bytes);
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- }
|