java前后端数据传输AES加解密

本文介绍了在Vue项目中使用AES加解密进行前后端数据安全传输的方法,包括Java端创建工具类、解密请求与响应类、注解处理,以及前端JS实现步骤。
摘要由CSDN通过智能技术生成

一、前端js方法

说明:当前是在vue项目中使用

新建AES.js 文件

import CryptoJS from 'crypto-js';

export default {
   
  //随机生成指定数量的16进制key
  generatekey(num) {
   
    let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    let key = "";
    for (var i = 0; i < num; i++) {
   
      let randomPoz = Math.floor(Math.random() * library.length);
      key += library.substring(randomPoz, randomPoz + 1);
    }
    return key;
  },

  //加密
  encrypt(word, keyStr) {
   
  	// 前后端指定同样的秘钥,很重要!!!
    keyStr = keyStr ? keyStr : 'abcdsxyzhkj12345'; //判断是否存在ksy,不存在就用定义好的key
    var key = CryptoJS.enc.Utf8.parse(keyStr);
    var srcs = CryptoJS.enc.Utf8.parse(word);
    var encrypted = CryptoJS.AES.encrypt(srcs, key, {
    mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
    return encrypted.toString();
  },
  //解密
  decrypt(word, keyStr) {
   
  	// 前后端指定同样的秘钥,很重要!!!
    keyStr = keyStr ? keyStr : 'abcdsxyzhkj12345';
    var key = CryptoJS.enc.Utf8.parse(keyStr);
    var decrypt = CryptoJS.AES.decrypt(word, key, {
    mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
    return CryptoJS.enc.Utf8.stringify(decrypt).toString();
  }

}

二、使用

		// 指定数据
          obj = {
   
            id:47,
            name:'张三'
          }


          console.log("开始加密")
          let a = AES.encrypt(JSON.stringify(obj))
          console.log(a)
          console.log("开始解密")
          let b = AES.decrypt(a)
          console.log(b)
          console.log("结束")

     
     		//调用接口直接将加密后的数据传过去
          this.$axios.post(this.$api + 'api/device/deleteSameDevice', a).then((res) => {
   
            
            // console.log(AES.decrypt(obj))
            console.log(res, 'wwwwwwwwww')
            console.log(res, 'xxxxxxxxxxxxx')
          }).catch((error) => {
   
            console.log(error)
          })

三、java使用

1.新建aesUtil包存放工具类

工具类包名

2.新建AESUtils.java 类

package com.gh.sd.util.aesUtil;

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;


public class AESUtils {
   

	// 加解密方式
    private static final String AES_ALGORITHM = "AES/ECB/PKCS5Padding"<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值