zoukankan      html  css  js  c++  java
  • VUE中的 AES加密和解密

    import CryptoJS from 'crypto-js/crypto-js'
    
    // 默认的 KEY 与 iv 如果没有给
    const KEY = CryptoJS.enc.Utf8.parse('F697467B14B076F2')
    const IV = CryptoJS.enc.Utf8.parse('0102030405060708')
    
    /**
     * AES加密 :字符串 key iv  返回base64
     */
    export function Encrypt(word, keyStr, ivStr) {
      let key = KEY
      let iv = IV
    
      if (keyStr) {
        key = CryptoJS.enc.Utf8.parse(keyStr);
        iv = CryptoJS.enc.Utf8.parse(ivStr);
      }
      let srcs = CryptoJS.enc.Utf8.parse(word);
      let encrypted = CryptoJS.AES.encrypt(srcs, key, {iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
      let hexStr = encrypted.ciphertext.toString().toUpperCase();
      return hexStr
    }
    
    /**
     * AES 解密 :字符串 key iv  返回base64
     *
     */
    export function Decrypt(word, keyStr, ivStr) {
      let key = KEY
      let iv = IV
    
      if (keyStr) {
        key = CryptoJS.enc.Utf8.parse(keyStr);
        iv = CryptoJS.enc.Utf8.parse(ivStr);
      }
    
      let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
      let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
      let decrypt = CryptoJS.AES.decrypt(srcs, key, {iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
      let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
      return decryptedStr.toString();
    }
    
    
    
    
    
    //使用
    import { Encrypt, Decrypt } from '@/utils/crypto'
    
    let name = '123123'
    
    // 加密
    let encryptName = Encrypt(name)
    
    console.log(encryptName)
    
    // 解密
    let encryptName = Decrypt(name)
    
    console.log(encryptName)
  • 相关阅读:
    [算法] 带权图
    哥德巴赫猜想 ——— 极限算法(你要是能写出比我用时还短的代码算我输)
    详解 位运算
    内存对齐模式 —— 原理讲解
    C语言 文件操作
    指针与数组
    队列的实现
    堆栈的实现
    线性表 详讲及使用
    树莓派
  • 原文地址:https://www.cnblogs.com/jackjo/p/9706687.html
Copyright © 2011-2022 走看看