React中的AES加解密请求
2024-10-01 11:34:53
引言
在我们使用React开发Web前端的时候,如果是比较大的项目和正常的项目的话,我们必然会用到加解密,之前的文章中提到.NET的一些加解密,那么,这里我就模拟一个例子:
1.后台开发API接口,但API接口需要加密请求,或者需要解密输出参数
2.前端使用React开发web调用API接口
让我们开始吧
那么针对于上述问题,我们可以使用"crypto-js"组件,具体使用方式可以去GitHub上搜索相应的组件,本文例子使用使用AES的方法进行加解密,结束上述需求
当我们引用组件后,那么我们就可以配置公共方法组件:
import * as CryptoJS from 'crypto-js'; let AuthTokenKey = "XXX"; //AES密钥
let AuthTokenIv = 'XXX'; //AES向量 /*AES加密*/
export function Encrypt(data) {
let dataStr = JSON.stringify(data);
let encrypted = CryptoJS.AES.encrypt(dataStr, CryptoJS.enc.Latin1.parse(AuthTokenKey), {
iv: CryptoJS.enc.Latin1.parse(AuthTokenIv),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
} /*AES解密*/
export function Decrypt(data) {
let data2 = data.replace(/\n/gm, "");
let decrypted = CryptoJS.AES.decrypt(data2, CryptoJS.enc.Latin1.parse(AuthTokenKey), {
iv: CryptoJS.enc.Latin1.parse(AuthTokenIv),
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
}
aes.js
配置完成,接下来就是正式的调用了。
import { Encrypt, Decrypt } from './aes'; ...... let data = { body : Encrypt({gatherType: gatherType})};
Request.FetchPost("api/Gather/GetSignCount", data).then(json=>{
if (条件) {
//执行
}
else {
//执行
}
});
附录
本文只是最简单的例举了一些引用和调用的方式,当然在AES加密的方法上还要匹配填充模式等等,这里就不是React的范畴了(而是需要跟API接口后端写的加密方式对应匹配啦),会用AES的基本上也都能知道和了解。
最新文章
- [LeetCode] Intersection of Two Linked Lists 求两个链表的交点
- Sparse Filtering 学习笔记(一)网络结构与特征矩阵
- SharePoint 2013 Error - TypeError: Unable to get property 'replace' of undefined or null reference
- android之广播(一)
- 10月21日上午MySQL数据库学习内容复习
- 非对称认证方式 可以用在 asp.net webapi 的安全机制里面
- 解决git Push时请求username和password,而不是ssh-key验证
- CATextLayer
- java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.getTempDirectory()Ljava/io/File;
- 1002. 写这个号码 (20)(数学啊 ZJU_PAT)
- JS的事件动态绑定机制
- GIT入门笔记(5)- 创建版本库
- Android 实现形态各异的双向侧滑菜单 自定义控件来袭
- To My Girlfriend (DP)
- 【BZOJ 1701】Cow School(斜率优化/动态凸包/分治优化)
- M. Subsequence 南昌邀请赛
- Git回滚代码到某个commit
- 模板·点分治(luogu P3806)
- 大数据 - spark-sql 常用命令
- ansible管理windows (发送文件)
热门文章
- RAP开发入门-运行第一个HelloWorld(二)
- 话说普通的TPlink ip地址是192.168.1.2 在LAN里有台电脑共享打印机 ip 是192.168.0.2 计算机名为j02 然后我把这台电脑加到DMZ里,让根路由器同一网段的可以访问 但添加打印机的时候 提示 计算机名重复 后来在需要添加打印机电脑的hosts文件里加了 192.168.1.2 j02 式了一样不行 话说,这个打印机该怎么添加
- Aspose.Cells基础使用方法整理
- div纵向居中的方法(转载)
- 凸多边形 HRBUST - 1429 计算几何_凸包_未调完
- 根据 thread id 停止一个线程
- 三、Git 分支
- PHP下的Oauth2.0尝试 - OpenID Connect
- 2019-03-14 Python爬虫问题 爬取网页的汉字打印出来乱码
- 前端和后台对接时对sign加密方法