|

楼主 |
发表于 2022-4-5 21:18:00
|
显示全部楼层
- package mimaxue;
- import java.util.Base64;
- import javax.crypto.Cipher;
- import javax.crypto.spec.IvParameterSpec;
- import javax.crypto.spec.SecretKeySpec;
- public class AES {
- private static final String defaultV = "6859505890402435";
- private static final String key = "好好学习,天天向上";
- private static SecretKeySpec getKey(String strKey) throws Exception {
- byte[] arrBTmp = strKey.getBytes();
- byte[] arrB = new byte[16];
- for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {
- arrB[i] = arrBTmp[i];
- }
- SecretKeySpec skeySpec = new SecretKeySpec(arrB, "AES");
- return skeySpec;
- }
-
- public static String encryptBase64(String content) throws Exception {
- final Base64.Encoder encoder = Base64.getEncoder();
- SecretKeySpec skeySpec = getKey(key);
- Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
- IvParameterSpec iv = new IvParameterSpec(defaultV.getBytes());
- cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
- byte[] encrypted = cipher.doFinal(content.getBytes());
- String encodedText = encoder.encodeToString(encrypted);
- return encodedText;
- }
-
- public static String decryptBase64(String content) throws Exception {
- final Base64.Decoder decoder = Base64.getDecoder();
- SecretKeySpec skeySpec = getKey(key);
- Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
- IvParameterSpec iv = new IvParameterSpec(defaultV.getBytes());
- cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
- byte[] base64 = decoder.decode(content);
- byte[] original = cipher.doFinal(base64);
- String originalString = new String(original);
- return originalString;
- }
-
- public static void main(String[] args) throws Exception {
- String encryptBase64 = encryptBase64("明文:信息计算2019级2班4号袁敏婷");
- System.out.println("密文:"+encryptBase64);
- String decryptBase64 = decryptBase64(encryptBase64);
- System.out.println(decryptBase64);
- }
- }
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|