vue前端进行AES加密,JAVA对其进行AES解密

vue前端进行AES加密

复制代码
// 使用 crypto-js 库来进行 AES 加密。
// 引入
import CryptoJS from 'crypto-js';

// 密钥和 IV 必须是 16 字节  
const secretKey = 'your-secret-key'; // 16 字节的密钥  
const iv = '0000000000000000'; // 16 字节的 IV  
const data = "onihaonihaonihao";   // 待加密数据  

// AES 加密  
const encrypted = CryptoJS.AES.encrypt(data, CryptoJS.enc.Utf8.parse(secretKey), {  
   iv: CryptoJS.enc.Utf8.parse(iv), // 使用 UTF-8 格式的 IV  
   mode: CryptoJS.mode.CBC,  
   padding: CryptoJS.pad.Pkcs7 // 使用 PKCS7 填充  
});  

// 将加密数据转换为 Base64 字符串以供传输  
const encryptedBase64 = encrypted.toString();  

在 Java 中进行 AES 解密

复制代码
import javax.crypto.Cipher;  
import javax.crypto.spec.IvParameterSpec;  
import javax.crypto.spec.SecretKeySpec;  
import java.util.Base64;  

public class AesDecrypt {  
    public static void main(String[] args) {  
        try {  
            String secretKey = "your-secret-key"; // 密钥  
            String iv = "0000000000000000"; // 初始向量  
            String encryptedData = "your-encrypted-data"; // Vue 输出的加密字符串  

            // Base64 解码  
            byte[] decodedData = Base64.getDecoder().decode(encryptedData);  

            // 初始化 AES  
            SecretKeySpec keySpec = new SecretKeySpec(secretKey.getBytes("UTF-8"), "AES");  
            IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes("UTF-8"));  

            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");  
            cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);  

            byte[] original = cipher.doFinal(decodedData);  

            String originalData = new String(original, "UTF-8");
            System.out.println("解密后的数据: " + originalData);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}  
相关推荐
白露与泡影1 分钟前
从区间锁到行锁:一次高并发写入死锁治理实战
java·开发语言
村口张大爷3 分钟前
01 — MVC 与 DDD 的思维差异
java·后端
毛骗导演5 分钟前
Cladue Code 源码解析-键盘事件与 Vim 模式:parse-keypress 解析状态机
前端·架构
渐儿5 分钟前
GLB 模型压缩 — 完整流程与代码映射
前端
疯狂成瘾者5 分钟前
Prompt分层策略
前端·数据库·prompt
kyriewen5 分钟前
你的数据该在哪儿拿?Next.js三种姿势一次讲清
前端·javascript·next.js
前端AI充电站5 分钟前
第 7 篇:让 RAG 答案可追溯:展示知识库引用来源
前端·人工智能·前端框架
疯狂成瘾者6 分钟前
对比JAR 包部署 vs Docker 部署方式
java·docker·jar
丑八怪大丑8 分钟前
Java范型
java·开发语言
加藤不太惠8 分钟前
Nacos简单实用集群创建
java·开发语言·nacos