这里我直接贴代码了。

vue cli中,要先导入

npm install crypto-js

vue代码如下:

import axios from 'axios'
import cryptoJS from "crypto-js/crypto-js";axios.defaults.timeout = 35 * 1000;/***  Get方法* @param {*} url* @param {*} params*/
export function fetch(url, params = {}) {return new Promise((resolve, reject) => {params['timestamp'] = new Date().getTime();let oriInfo = "";for (let key in params) {oriInfo += params[key] + "$";}let paraString = oriInfo.substr(0, oriInfo.length - 1);params['signature'] = this.$md5(paraString);let key = params['signature'].substring(0, 16);let shieldStr = encrypt(params['signature'], key)console.log("shield:" + shieldStr);console.log("origin:" + decrypt(shieldStr, key))params['shield'] = shieldStr;axios.get(url, {params: params}).then(response => {resolve(response);}).catch(err => {reject(err)})})
}export function post(url, data = {}) {return new Promise((resolve, reject) => {axios.post(url, data).then(response => {resolve(response);},err => {reject(err);})})
}//aes加密
export function encrypt(word, keyStr) {keyStr = keyStr ? keyStr : 'QWERTASDFGZXCVBN';let key = cryptoJS.enc.Utf8.parse(keyStr);let srcs = cryptoJS.enc.Utf8.parse(word);let encrypted = cryptoJS.AES.encrypt(srcs, key, {mode: cryptoJS.mode.ECB, padding: cryptoJS.pad.Pkcs7})return encrypted.toString();
}//aes解密
export function decrypt(word, keyStr) {keyStr = keyStr ? keyStr : 'QWERTASDFGZXCVBN';let key = cryptoJS.enc.Utf8.parse(keyStr);let decrypt = cryptoJS.AES.decrypt(word, key, {mode: cryptoJS.mode.ECB, padding: cryptoJS.pad.Pkcs7});return cryptoJS.enc.Utf8.stringify(decrypt).toString();
}

上面这个vue的,AES用的是signature前16位做的AES。

下面是java端:

public class AESUtil {public static String decrypt(String content, String key) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException, UnsupportedEncodingException {//Key k = toKey(Base64.decodeBase64(key));Key k = toKey(key.getBytes());byte[] encoded = k.getEncoded();SecretKeySpec aes = new SecretKeySpec(encoded, "AES");Cipher cipher = Cipher.getInstance("AES");cipher.init(Cipher.DECRYPT_MODE, aes);byte[] bytes = cipher.doFinal(Base64.decodeBase64(content));return new String(bytes, "UTF-8");}public static String encrypt(String data, String key) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, BadPaddingException, IllegalBlockSizeException {//Key k = toKey(Base64.decodeBase64(key));Key k = toKey(key.getBytes());byte[] encoded = k.getEncoded();SecretKeySpec aes = new SecretKeySpec(encoded, "AES");Cipher cipher = Cipher.getInstance("AES");cipher.init(Cipher.ENCRYPT_MODE, aes);byte[] bytes = cipher.doFinal(data.getBytes("UTF-8"));return Base64.encodeBase64String(bytes);}private static Key toKey(byte[] key){SecretKeySpec aes = new SecretKeySpec(key, "AES");return aes;}}

这里前端数据加密或解析然后发给后端,加密或解析。

都是一样的,在此记录下,以后越到此问题直接拷代码。

Web前后端笔记-vue cli及java进行AES加解密相关推荐

  1. Web前后端笔记-vue封装http请求添加signature及后端(Java)解析并验证

    首先帖下运行截图: 签名过期情况: 签名错误情况: 这里npm要导入js-md5,并且在main.js中添加 import md5 from 'js-md5' Vue.prototype.$md5 = ...

  2. Java使用AES加解密

    Java使用AES加解密 目录 1.1生成密钥 1.2密钥的存储 1.3获取存储的密钥 1.4加解密 1.5使用存储的密钥进行加解密示例 AES是一种对称的加密算法,可基于相同的密钥进行加密和解密.J ...

  3. Java实现aes加解密

    pom文件的依赖 <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <depe ...

  4. Java 实现 AES 加解密

    毕业课题中需要使用加解密算法,要求加解密前后的数据长度不会变化,查了一些资料,发现可以采用AES加密的CFB跟OFB模式是无填充的模式,可以保持加解密前后数据的长度相等.下面上代码: import j ...

  5. Web前后端笔记-通过对称加密算法和信息摘要算法防止数据重放

    理论图如下: 这里使用时间戳和随机数和正常提交的表单数据生成MD5摘要,再使用某16位密钥把MD5进行AES加密,生成128位的数据.然后提交给服务器. 服务器先看提交的时间戳是否在范围内(如2分钟) ...

  6. Java笔记-DH密钥交换获取密钥及AES加解密

    DH密钥交换是这样的: 程序运行截图如下: D:\java8\content\bin\java.exe -javaagent:D:\idea\content\lib\idea_rt.jar=61009 ...

  7. Linux下运行java DES AES加解密

    2019独角兽企业重金招聘Python工程师标准>>> DES java源代码如下: import java.security.InvalidKeyException; import ...

  8. 记一次Java AES 加解密 对应C# AES加解密 的一波三折

    最近在跟三方对接 对方采用AES加解密 作为一个资深neter Ctrl CV 是我最大的优点 所以我义正言辞的问他们要了demo java demo代码: public class EncryptD ...

  9. 视频教程-Vue、Spring Boot开发小而完整的Web前后端分离项目实战-Java

    Vue.Spring Boot开发小而完整的Web前后端分离项目实战 3年多.net开发经验:5年的java后端开发经验,熟悉行.net,java流行技术,拥有多个.net,java web企业级应; ...

最新文章

  1. Linux之bash shell基本命令
  2. 艾媒咨询:泛娱乐「体验共享」报告发布,网易云信多个案例领衔
  3. iphone如何信任软件_苹果企业开发者证书成漏洞 盗版商发布破解版iPhone应用
  4. python文件下载速度 装饰器_python使用装饰器对文件进行读写操作'及遍历文件目录...
  5. linux java url 异常_Java连接虚拟机(Linux)中的Oracle数据库,连接异常~新手求解!
  6. html5与access连接数据库操作,access是一个什么数据库?
  7. 安卓仿苹果键盘输入法_iphone输入法安卓版下载
  8. 类EMD的“信号分解方法”及MATLAB实现(第一篇)——EEMD
  9. 高薪岗位大数据开发工程师要如何入门?【重磅】
  10. 2020最新版前端学习路线图--让前端学习变得美如画
  11. 与CPU相关的计算题
  12. GMT绘制子图、指北针、图例、比例尺
  13. 在word中通过endnote打入文献标签
  14. dat图片 电脑端微信_微信Dat文件解码,PC微信加密图片解密工具
  15. Android 曝光采集,商品view曝光量的统计,判断RecyclerView中某子view是否可见 view是否显示在屏幕中 view展示次数统计...
  16. vivo手机权限禁止--跳转至对应app的权限设置页面
  17. windows 前端工作环境搭建指北
  18. vue 公告栏组件
  19. Uber 公司推出的 GoLang 编程规范
  20. 核心转储文件的设置和查看

热门文章

  1. 解决gdal集成libkml的链接错误
  2. C语言基础教程读书笔记5.2.(第五章函数和存储类2)
  3. Apache Nutch 1.3 学习笔记目录
  4. Java中的继承与组合
  5. 代码中有的《飞秋》只是一个照面
  6. 基于Nokia S60的游戏开发之一
  7. 用Python实现智能推荐!某音,某宝都是智能推荐的,你都知道吗?
  8. linux多线程冗余,Linux  下的路径冗余
  9. mysql 5.1 for linux_linux下安装mysql5.1.68
  10. 推荐几个常用的生物通路数据库