因为公司的项目中用到了接口加密解密,所以百度了一下前端JS加密相关的文章,发现谷歌的CryptoJS挺好用的,因为项目用的是vue框架,记录一下项目中使用经验:

首先使用npm安装CryptoJS

npm install crypto-js

引用

import CryptoJS from 'crypto-js/crypto-js'

在此我引用的是总文件,如果只是用到个别的加密方式,可以单独引用对应的加密JS文件;

加密代码实现

项目中需要将所有传到后台的参数分5个步骤处理:

第一步:排序
第二步:将排序好的参数进行MD5加密作为接口的签名
第三步:将排序好的参数和接口签名拼接上进行AES加密
第四部:将AES加密后的密文Base64加密
第五步:将最终的密文encodeURIComponent;

代码如下:

function encryption(data) {let strs=[];for(let i in data){strs.push(i+'='+data[i]);}strs.sort();  // 数组排序strs=strs.join('&'); // 数组变字符串let endData=strs+'&sign='+CryptoJS.MD5(strs+'ADfj3kcadc2349akvm1CPFFCD84f').toString(); // MD5加密let key = CryptoJS.enc.Utf8.parse("0880076B18D7EE81"); // 加密秘钥let iv = CryptoJS.enc.Utf8.parse("CB3EC842D7C69578");  //  矢量let encryptResult = CryptoJS.AES.encrypt(endData,key, {   //  AES加密iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7  // 后台用的是pad.Pkcs5,前台对应为Pkcs7});return encodeURIComponent(CryptoJS.enc.Base64.stringify(encryptResult.ciphertext));  // Base64加密再 encode;
}

加密最终的密文拼接在接口地址后面,请求接口。后台返回的数据也是密文;解密方法如下:

function decryption(data) {let key = CryptoJS.enc.Utf8.parse("0880076B18D7EE81");  // 加密秘钥let iv = CryptoJS.enc.Utf8.parse("CB3EC842D7C69578");   //  矢量let baseResult=CryptoJS.enc.Base64.parse(data);   // Base64解密let ciphertext=CryptoJS.enc.Base64.stringify(baseResult);     // Base64解密let decryptResult = CryptoJS.AES.decrypt(ciphertext,key, {    //  AES解密iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});let resData=decryptResult.toString(CryptoJS.enc.Utf8).toString();return JSON.parse(resData);}
备注:因为后台返回的数据是json格式;所以做种return的时候使用JSON.parse();如果解密的目标为字符串,比如说需要解密的是一个加密的token值。那就要做相应的改动:
function decryption(data) {let key = CryptoJS.enc.Utf8.parse("0880076B18D7EE81");  // 加密秘钥let iv = CryptoJS.enc.Utf8.parse("CB3EC842D7C69578");   //  矢量let baseResult=CryptoJS.enc.Base64.parse(data);   // Base64解密let ciphertext=CryptoJS.enc.Base64.stringify(baseResult);     // Base64解密let decryptResult = CryptoJS.AES.decrypt(ciphertext,key, {    //  AES解密iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return CryptoJS.enc.Utf8.stringify(decryptResult)}

因为项目比较赶,这个加密解密的过程虽然捣鼓出来了,但是还有很多东西不求甚解,以后会细致研究该加密方式的使用方法,再做补充。

CryptoJS 加密的使用方法相关推荐

  1. mpvue小程序实现人脸识别/视频录制/身份验证/CryptoJS加密 等功能

    mpvue小程序实现人脸识别/视频录制/身份验证/CryptoJS加密 等功能 先看效果图 mpvue小程序与数据宝对接实现人脸识别/视频录制/身份验证/CryptoJS 加密 等功能关键代码 ind ...

  2. 常见的js加密/js解密方法

    常见的js加密/js解密方法 当今互联网世界中,数据安全是至关重要的.为了保护用户的隐私和保密信息,开发人员必须采取适当的安全措施.在前端开发中,加密和解密技术是一种常见的数据安全措施,其中 Java ...

  3. java加密和js的CryptoJS加密

    背景:java的解密加密和js的对应这里做个记录,这里加密hello字符串为示例 CryptoJS.enc.Base64.stringify对应的加密示例 js加密 sign = 'hello'; v ...

  4. 功能:crypto-js加密解密

    一.需求背景及crypto实现原理 待补充 二.安装使用 2.1.安装 yarn add crypto-js 2.2.在utils.js引入插件 const CryptoJS = require('c ...

  5. CryptoJS加密解密

    1.CryptoJS CryptoJS库是前端js写的一个加密解密的工具,使用场景就是对于像账户密码等重要信息要显示在页面上时,需要加密,这样才能保证安全,CryptoJS提供了许多加密的方法, 请参 ...

  6. getcoo php_PHP简单实现DES加密解密的方法

    本文实例讲述了PHP简单实现DES加密解密的方法.分享给大家供大家参考,具体如下: des加密: function des_encrypt($str, $key) { $block = mcrypt_ ...

  7. phpc.sinaapp.com 加密的解密方法

    原文:phpc.sinaapp.com 加密的解密方法 很简单,用类似phpjm的解密方式,替换掉_inc.php中最后一个return中的eval为print就出来了.

  8. python js加密解密_AES用cryptojs加密,用python解密加密Ciph

    使用js CryptoJS加密和使用python解密时遇到问题密码密码在 这是我在js中的实现, 用加密消息附加iv并用base64编码 var message='Secreat Message to ...

  9. 可以考的python方面的证书-python有证书的加密解密实现方法

    本文实例讲述了python有证书的加密解密实现方法.分享给大家供大家参考.具体实现方法如下: 最近在做python的加解密工作,同时加完密的串能在php上能解出来,网上也找了一些靠谱的资料,刚好也有时 ...

最新文章

  1. mysql常见增量恢复方式_MySQL 全备份与增量备份 全恢复与增量恢复
  2. UA MATH563 概率论的数学基础 中心极限定理8 弱大数定律 Bernstein多项式逼近
  3. ELK日志管理之——logstash部署
  4. Laravel核心代码学习--用户认证系统(基础介绍)
  5. alexa语音实现_如何通过语音删除Alexa录音
  6. 用.NET解索尼相机ARW格式照片
  7. python emoji 表情过滤
  8. python——进程基础
  9. 数据库左连接和右连接有什么区别!
  10. 腾讯内部出品Android编程入门教程,快快收藏吧!!!
  11. 前端页面预览word_页面预览Word
  12. mysqldump关于--set-gtid-purged=OFF的使用
  13. sklearn2onnx
  14. 模型推荐丨新闻传播大数据项目案例模型分享
  15. A Strong Baseline and Batch Normalization Neck for Deep Person Re-identification(论文笔记)(2019CVPR)
  16. 华为ENSP之防火墙双机热备
  17. docker监控方案
  18. 教学|3D建模之,游戏场景创建大致流程
  19. 浅析decltype一些有趣(实用)的用法
  20. python邮箱爆破_python制作企业邮箱的爆破脚本

热门文章

  1. 专访阿里云闵万里:云上逐鹿_ET大脑要做行业化、垂直化的创新运用
  2. 在宜宾,看见未来中国的产融平台样本
  3. 加药装置 全自动加药装置 示踪加药装置介绍
  4. Halcon模板匹配定位跟随找圆
  5. PS | 文字自适应箱子物体形状, 利用滤镜消失点给纸箱加文字
  6. JS DOM(超级详细,如果对DOM知识还不熟悉的必看)
  7. K8s落地实践之旅 —— Pod(豌豆荚)
  8. 朱哥黑科技--你必须看,无用的话我吃xiang
  9. 最大熵方法求概率密度函数
  10. php屏蔽地区_屏蔽指定省份访问PHP代码