建设企业功能网站,html5创意网站,企业网络推广公司,如何用rp做网站步骤前言#xff1a; 现在为了防止用户直接篡改数据会采用加密的方式进行传输#xff0c;加密的方法有很多种#xff0c;这篇文章主要讲解下后端使用DES加密的数据传输给前端#xff0c;前端接收到之后如何去解密。
操作步骤如下#xff1a;
1.安装crypto-js
npm install c…前言 现在为了防止用户直接篡改数据会采用加密的方式进行传输加密的方法有很多种这篇文章主要讲解下后端使用DES加密的数据传输给前端前端接收到之后如何去解密。
操作步骤如下
1.安装crypto-js
npm install crypto-js2.在使用的页面引入
const CryptoJS require(crypto-js)3.封装解密方法
// 注意这里封装的方法分为两种一种是后端使用DES加密用到初始化向量iv的一种是只有密文和密钥的// 使用初始化向量iv,ciphertext:密文key:密钥
const decryptDES (ciphertext, key) {const keyHex CryptoJS.enc.Utf8.parse(key)// 注意这里的向量是写死如果是动态的 则可以直接通过decrypt 方法传入。前端向量接收只能是整数类型的但是后端给的向量一般是8字节/16字节二进制的这个时候就需要使用Uint8Array转成整数如下let ivBytes new Uint8Array([8,7,6,5,4,3,2,1])let ivHex CryptoJS.lib.WordArray.create(ivBytes)let newText CryptoJS.enc.Base64.parse(ciphertext)const decrypted CryptoJS.DES.decrypt({ciphertext: newText}, keyHex,{iv: ivHex,mode: CryptoJS.mode.ECB, // 这里以ECB举例如果是CBC直接把ECB替换下来即可padding: CryptoJS.pad.Pkcs7,})return decrypted.toString(CryptoJS.enc.Utf8)
}// 只有密文和密钥ciphertext:密文key:密钥
const decryptDES (ciphertext, key) {const keyHex CryptoJS.enc.Utf8.parse(key)const decrypted CryptoJS.DES.decrypt({ciphertext: CryptoJS.enc.Base64.parse(ciphertext),}, keyHex, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7})return decrypted.toString(CryptoJS.enc.Utf8);// 上面代码解析先使用 CryptoJS.enc.Base64.parse() 方法将 Base64 编码的字符串解码为 CryptoJS 中的 WordArray 对象然后使用 CryptoJS.DES.decrypt() 方法对该对象进行解密4.调用
decryptDES(密文,密钥)