文档章节

cryptoJS AES 加解密简单使用

o
 osc_a22drz29
发布于 2019/03/21 18:46
字数 424
阅读 90
收藏 0

精选30+云产品,助力企业轻松上云!>>>

简单记录一下,前端利用 cryptoJS 如何加解密的。主要是关于 AES 加解密。

需求描述:需要对 url 中的参数进行 AES 解密,然后再把该参数进行 MD5 加密通过接口传递。

AES

AES:对称加密。加解密的双方使用同一个秘钥。秘钥不能在网络中传输,避免被拦截。如果要传输,必须要对秘钥进行非对称加密再加密一次。

对称加密,比非对称加密速度快。

算法理解篇可参考(个人认为还是非常详细的):AES加密算法的详细介绍与实现

使用篇可参考:理解AES加密解密的使用方法

ios,Android,前端 多端实现可参考:AES三端加密解密 – iOS与Android,JS的同步实现

在实现的时候,由于AES加密的方式很多,所以需要先商量并确定好采用的 AES 的 vi (初始变量)、key(秘钥)、mode(加密模式)、padding(填充方式)。这样在实现多端加解密的时候才都正确。

AES.js

import CryptoJS from 'crypto-js'

const key = 'aaaabbbbccccdddd'
const iv = '1234567887654321'

// 加密
function Encrypt (text) {
  return CryptoJS.AES.encrypt(text, CryptoJS.enc.Utf8.parse(key), {
    iv: CryptoJS.enc.Utf8.parse(iv),
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  }).toString()
}

// 解密
function Decrypt (text) {
  let decrypted = CryptoJS.AES.decrypt(text, CryptoJS.enc.Utf8.parse(key), {
    iv: CryptoJS.enc.Utf8.parse(iv),
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7
  })
  return decrypted.toString(CryptoJS.enc.Utf8)
}

export default {
  Encrypt,
  Decrypt
}

使用:

let text = AES.Encrypt('123')
console.log(text)
console.log(AES.Decrypt(text))

MD5

MD5,不可逆,只能加密,不能解密哦。

import CryptoJS from 'crypto-js';

CryptoJS.MD5('123').toString();

关于 crypto.js

crypto.js 是一个纯 JavaScript 写的加密算法类库,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。github

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
看JS中利用CryptoJS进行MD5/SHA256/BASE64/AES加解密的方法与示例

CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法,由于它使用起来稍微有些复杂。所以本文主要着重说一下CryptoJS进行MD5/SHA256/BASE64/AES加解密的方法与示例。 准备工作 你可...

探索大陆的猿猴
06/05
0
0
JS中利用CryptoJS进行MD5/SHA256/BASE64/AES加解密的方法与示例

CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法,由于它使用起来稍微有些复杂。所以本文主要着重说一下CryptoJS进行MD5/SHA256/BASE64/AES加解密的方法与示例。 准备工作 你可...

橘猫的天空
06/05
8
2
看JS中利用CryptoJS进行MD5/SHA256/BASE64/AES加解密的方法与示例

CryptoJS (crypto.js) 为 JavaScript 提供了各种各样的加密算法,由于它使用起来稍微有些复杂。所以本文主要着重说一下CryptoJS进行MD5/SHA256/BASE64/AES加解密的方法与示例。 准备工作 你可...

osc_2gkfj43j
06/24
14
0
uniapp开发的app中使用CryptoJS

uniapp开发的app中使用CryptoJS 更新时间:2020-07-04 11:15 一.需求场景 开发的项目中用到了md5校验,base64加密,解密和aes加密,解密,为了方便这三种加密方式的使用,采用了CryptoJS. 二.解决方...

左岸恋雪Six
07/04
2
0
vue 中引入cryptoJS

  在搞前端开发的时候,页面上有很多的地方是需要用户输入信息的,但是有些信息又很敏感,比如客户的姓名、电话号码、身份证号码、银行卡号及密码等等这些,如果没有进行加密处理,很容易被...

osc_28hs2gg6
2019/05/09
11
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么从HBase的0.96版本开始,舍弃了-ROOT-文件?

HBase结构的读写流程 (1). HBase0.96版本之前: (2). HBase0.96开始: a. 当客户端获取到.meta文件的位置之后,会缓存.meta.文件的位置 b. 客户端还会缓存HRegion的位置 -ROOT-存在的意义: ...

其乐m
34分钟前
18
0
volatile关键字对 - What is the volatile keyword useful for

问题: At work today, I came across the volatile keyword in Java. 今天的工作中,我遇到了Java中的volatile关键字。 Not being very familiar with it, I found this explanation: 不太熟......

技术盛宴
39分钟前
25
0
golang 封装 mysql 和 redis 连接

Mysql封装 package dbimport ("fmt"_ "github.com/go-sql-driver/mysql""github.com/jmoiron/sqlx")var DB *sqlx.DBfunc init(){database, err := sqlx.Op......

开源中国最牛的人
39分钟前
16
0
pdfbox 读取文件报错 java.io.IOException: Page tree root must be a dictionary

pdfbox java.io.IOException: Page tree root must be a dictionary 示例代码 public static void main(String[] args) { try (InputStream sampleInputs = new ClassPathResource("s......

lemos
48分钟前
28
0
整理 Linux下列出目录内容的命令

在 Linux 中,有非常多的命令可以让我们用来执行各种各样的任务。当我们想要像使用文件浏览器一样列出一个目录下的内容时,大家第一时间想到的是 ls 命令。但只有 ls 命令能实现这个目的吗?...

良许Linux
49分钟前
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部