当前位置:首页 » 《关于电脑》 » 正文

后端使用DES加密,前端解密方法

11 人参与  2024年04月14日 17:47  分类 : 《关于电脑》  评论

点击全文阅读


前言:
现在为了防止用户直接篡改数据会采用加密的方式进行传输,加密的方法有很多种,这篇文章主要讲解下后端使用DES加密的数据传输给前端,前端接收到之后如何去解密。

操作步骤如下:

1.安装crypto-js

npm install crypto-js

2.在使用的页面引入

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(密文,密钥)

点击全文阅读


本文链接:http://zhangshiyu.com/post/95300.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1