首先安装cryptojs

npm install crypto-jsimport CryptoJS from 'crypto-js'  // 引入CryptoJSconst key = CryptoJS.enc.Utf8.parse('47FC4124CF94E070') // 密钥const iv = CryptoJS.enc.Utf8.parse('ovOh2xYoRdfATob6') // 密钥偏移量// 加密方法
const AesEncode = function (word) {let srcs = CryptoJS.enc.Utf8.parse(word);// 对称加密算法主要有AES、DES、3DES / 非对称加密算法主要有RSA、DSA、RCC// iv(初始变量)// key(加密密钥)// mode(加密模式 主要有CBC(默认)、CFB、CTR、OFB、ECB)// padding(填充方式 主要有Pkcs7(默认)、Iso97971、AnsiX923、Iso10126、ZeroPadding)let encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });let encryptedBase64Data = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);return encodeURIComponent(encryptedBase64Data);
}// 解密方法
const AesDecode = function (word) {word = decodeURIComponent(word)let encryptedHexStr = CryptoJS.enc.Base64.parse(word);let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);let decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);return decryptedStr.toString();
}加密示例如下:
// 对hello进行加密
let str = AesEncode('hello')
console.log(str) // k1sj3bcoa%2BOWfzgEZyqYeA%3D%3D// 对hello进行解密
let str1 = AesDecode('k1sj3bcoa%2BOWfzgEZyqYeA%3D%3D')
console.log(str1) // hello

cryptojs 采用的是对称加密,下面再来聊聊对称加密和非对称加密的差异:

对称加密
优点:算法公开、计算量小、加解密的效率高、加密速度快(加密和解密使用相同的密钥)
缺点:密钥的管理和分发上比较困难,不是非常安全,密钥管理负担很重

非对称加密
优点:安全性更高,公钥是公开的,密钥是自己保存的,不需要将私钥给别人
缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密

解决办法
将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行
解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。

crypto-js aes 加解密相关推荐

  1. aes js 加盐值 解密_cryptoJS AES 加解密简单使用

    简单记录一下,前端利用 cryptoJS 如何加解密的.主要是关于 AES 加解密. 需求描述:需要对 url 中的参数进行 AES 解密,然后再把该参数进行 MD5 加密通过接口传递. AES AE ...

  2. JS逆向加解密——python 实现AES加解密

    前言 写爬虫项目,做JS逆向或者APP逆向时,经常遇到网站的很多参数都经过AES加密解密,用python实现AES加解密是非常简单的,免去了扣JS代码,并且实现格式固定,所以本文提供实现好的AES加解 ...

  3. [crypto]-01-对称加解密AES原理概念详解

    1.对称加解密 术语:P是明文,C是密文,K是密钥,E是加密算法,D是解密算 (1).常用的对称加解密有哪些? (2).加解密的模式 [ecb]这种模式是将整个明文分成若干段相同的小段,然后对每一小段 ...

  4. Java code lib aes 加解密

    Java aes 加解密 /*** Created by LvJianwei on 2018/2/8.*/import javax.crypto.Cipher; import javax.crypto ...

  5. [crypto]-02-非对称加解密RSA原理概念详解

    说明:本文使用的数据来自网络,重复的太多了,也不知道哪篇是原创. 算法原理介绍 step 说明 描述 备注 1 找出质数 P .Q - 2 计算公共模数 N = P * Q - 3 欧拉函数 φ(N) ...

  6. 数据採集器服务——Socket(今天才发现AES加解密代码跟贴的时候不一样,貌似乱码,不知什么情况)...

    近期刚做的一个项目.关于 Socket TCP 通信. 需求方提供了一个 ARM 机器,及数据採集器,须要我做一个服务端与数据採集器进行交互. 目的: 数据採集器:定时将读取到的数据发送到服务端. 服 ...

  7. 前端 crypto-js aes 加解密

    背景 前段时间公司做项目,该项目涉及到的敏感数据比较多,经过的一波讨论之后,决定前后端进行接口加密处理,采用的是 AES + BASE64 算法加密~ 网上关于 AES 对称加密的算法介绍看上一篇! ...

  8. openssl c++实现bouncycastle中AES加解密

    0x01 为什么要用bouncycastle 先说说JCE(Java Cryptography Extension)是一组包,它们提供用于加密.密钥生成和协商以及 Message Authentica ...

  9. Golang AES 加解密

    文章目录 AES 简介 AES 加解密实现 小结 参考文献 AES 简介 利用 Go 提供的 AES 加解密与 Base64 编解码包,我们可以轻松实现 AES 加解密.实现之前,首先了解一下 AES ...

  10. java aes 工具类_Java中的AES加解密工具类:AESUtils

    本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...

最新文章

  1. signature=0a26d8967069103efeee67346aac0529,Construction of Thinned Gated Single-Assignment Form
  2. html判断数字数据的大小写,判断一个字符是否是数字、还是大小写字母
  3. Oracle备份恢复一(手动备份)
  4. arm服务器芯片尺寸,华为第四代ARM服务器自研芯片Hi1620规格曝光 全球首款7nm工艺的数据中心用ARM处理器...
  5. 苹果笔记本电脑电池保养细则
  6. Teradata QueryGrid整合最佳分析技术 拓展客户选择空间
  7. Anaconda 国内镜像源整理
  8. iphone 如何成功的把three20成功的添加到xcode中去。
  9. android手机视频,安卓手机视频加密软件
  10. Mybatis3全面详解
  11. JS五彩连珠小游戏(Canvas绘制)
  12. 怎么学计算机中级,计算机二级自学要多久 怎样复习
  13. w10系统服务器管理器,Win10如何打开服务管理器
  14. 如何将手机里的PDF转换成Word?
  15. Error Client wants topic A to have B, but our version has C. Dropping connection.
  16. 如何快速、有效地管理海量的、分散的数据?佳农靠它实现数智化
  17. Oracle update 更新数据语法和写法
  18. SurfaceView显示透明色
  19. std::wstring std::wstring::sizetype wstring::npos 简单示例介绍
  20. 华为p20nfc怎么复制门禁卡_EMUI的这个功能,让手机瞬间化身门禁卡

热门文章

  1. 以色列通过空袭回应哈马斯的黑客攻击
  2. CMD(命令提示符)修改盘符
  3. java 画笔_JAVA画笔(paint)的使用
  4. Assignment #2 STA355H1S
  5. AirPods站起来,千万个Hi-Fi倒下去
  6. JAVA与西门子S7协议通讯
  7. 利用pyecharts的wordcloud实现词云(可结合Pandas数据分析和jieba分词)
  8. 绘图机写单线字,实验报告不用自己写啦
  9. 夯实Java基础系列11:深入理解Java中的回调机制
  10. 开单大师房产中介管理系统源码服务器及安装配置方式