前端使用CryptoJS加密解密

AI 概述
加密算法下载 crypto-js使用例子 CryptoJS 是一个 JavaScript 的加解密的工具包。它支持多种的算法:MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。 AES 高级加密标准,是下一代的加密算法标准,速度快,安全级别高 DES 数据加密标准,适用于大量数据...
目录
文章目录隐藏
  1. 加密算法
  2. 下载 crypto-js
  3. 使用例子

CryptoJS 是一个 JavaScript 的加解密的工具包。它支持多种的算法:MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。

  • AES 高级加密标准,是下一代的加密算法标准,速度快,安全级别高
  • DES 数据加密标准,适用于大量数据加密
  • Triple DES 是 DES 的增强版
  • RC4 流加密算法,密钥长度可变
  • HmacSHA1 键控哈希算法(密钥与消息数据混合)

加密算法

1. 加密函数的参数是:(明文字符串, 密钥字符串,可选参数对象),返回密文字符串。

加密函数是:Cryptojs.AES.encryptCryptojs.DES.encrypt``,Cryptojs.Rabbit.encryptCryptojs.RC4.encryptCryptojs.TripleDES.encrypt

2. 解密函数的参数是:(密文字符串, 密钥字符串,可选参数对象),返回的结果必须用.toString(CryptoJS.enc.Utf8)转为明文。

解密函数是:CryptoJS.AES.decryptCryptoJS.DES.decryptCryptoJS.Rabbit.decryptCryptoJS.RC4.decryptCryptoJS.TripleDES.decrypt

其中可选参数对象常用属性:

  • mode:加密模式 【CBC、ECB、CFB、OFB、CTRGladman(CTR)】
  • paddig:填充方式 【 NoPadding、ZeroPadding、Pkcs7(Pkcs5)、Iso10126、Iso97971、AnsiX923】
  • vi: 偏移向量
  • formatter:自定义格式

下载 crypto-js

npm install crypto-js --save-dev
yarn add crypto-js --dev
// 或者下载 js 文件
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.js

使用例子

以下代码是个人在项目中使用,仅供大家参考学习。

import CryptoJS from 'crypto-js';

// 默认的 KEY 与 iv
const getKEY = () => CryptoJS.enc.Utf8.parse('0123456789ABHAED'); // 十六位十六进制数作为密钥
const getIV = () => CryptoJS.enc.Utf8.parse('DYgjCEIMVrj2W9xA'); // 十六位十六进制数作为密钥偏移量

/**
 * AES 加密 :字符串 key iv  返回 base64
 */
export function encrypt(word) {
  const key = getKEY();
  const iv = getIV();
  const srcs = CryptoJS.enc.Utf8.parse(word);
  var encrypted = CryptoJS.AES.encrypt(srcs, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.ZeroPadding,
  });
  return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);
}

/**
 * AES 解密 :字符串 key iv  返回 base64
 *
 */
export function decrypt(word) {
  const key = getKEY();
  const iv = getIV();
  const base64 = CryptoJS.enc.Base64.parse(word);
  const src = CryptoJS.enc.Base64.stringify(base64);
  var decrypt = CryptoJS.AES.decrypt(src, key, {
    iv: iv,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.ZeroPadding,
  });
  var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  return decryptedStr.toString();
}

推荐阅读:对 jsjiami.com.v6 加密结果如何进行手工解密

以上关于前端使用CryptoJS加密解密的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。

「点点赞赏,手留余香」

1

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 前端使用CryptoJS加密解密

发表回复