vue+typescript如何使用crypto-js

先说重点,如果要支持ie11,crypto的版本就一定要用我写的
"@types/crypto-js": "^4.0.2",
"crypto-js": "^4.0.0",

① 安装
npm install crypto-js@4.0.0 ----这个一定要用这个版本,或者更低一点,再低的我没有试,反正这个是支持ie的-如果不考虑ie就忽略
npm install --save @types/crypto-js

②创建


微信截图_20210902114056.png
import CryptoJS from "crypto-js"
import { CrypotoType } from "@/types/pro/crypoto" // 这个是自己定义的,写的什么 我下面发出来
export default class Crypoto implements CrypotoType {
  private key = "dufy20170329java" // 要跟后端约定规则
  private keyHex = this.getHexKey()

  private getHexKey() {
    return CryptoJS.enc.Latin1.parse(this.key)
  }

  encrypt(msg: string) {
    const encrypted = CryptoJS.AES.encrypt(msg, this.keyHex, {
      iv: this.keyHex, // 这个参数我之前忘传了,使用CBC的时候一直会报错,所以千万不要忘记哦,如果创建成功,但是控制台一直报错什么undefined的呀,什么[0]啥的,就检查一下 是不是自己使用有问题
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.ZeroPadding
    });
    return encrypted.toString()
  }

  decrypt(msg: string) {
    const decrypted = CryptoJS.DES.decrypt(msg, this.keyHex, {
      mode: CryptoJS.mode.ECB,
      padding: CryptoJS.pad.Pkcs7
    })
    return decrypted.toString(CryptoJS.enc.Utf8);
  }
}
// 接上面 import { CrypotoType } from "@/types/pro/crypoto" 
export interface CrypotoType {
    encrypt: Function
    decrypt: Function
}

好了 就这样引入啦~

③使用

import Crypoto from "@/lib/js/CryptoJS" // 引入

// 使用
const cry = new Crypoto()
const password = cry.encrypt(this.dataForm.password)

简简单单~ 就这样吧~

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容