• crypto-js 前端加密与解密


    crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、DES、Rabbit、RC4、Triple DES 加解密。

    import CryptoJS from 'crypto-js/crypto-js'
    
    /**
     * iv 是密钥偏移量,这个一般是接口返回的,或者前后端协定一致。
     *由于对称解密使用的算法是 AES-128-CBC算法,数据采用 PKCS#7 填充 , 因此这里的 key 需要为16位
     */
    //16位16进制数作为密钥
    const KEY = CryptoJS.enc.Utf8.parse('1234123412ABCDEF')
    const IV = CryptoJS.enc.Utf8.parse('ABCDEF1234123412')
    /**
     * 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)
      }
    
      const srcs = CryptoJS.enc.Utf8.parse(word)
      var encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.ZeroPadding
      })
      // console.log("-=-=-=-", encrypted.ciphertext)
      return CryptoJS.enc.Base64.stringify(encrypted.ciphertext)
    }
    /**
     * 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)
      }
    
      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()
    }
  • 相关阅读:
    关于WPF中Popup控件的小记
    javascript调用外部wpf的方法
    html+ashx 缓存问题
    『Linux学习笔记』8. 权限
    LeetCode 2.两数相加
    C# 标签打印示例 1
    检索COM 类工厂中CLSID 为 {0002450000000000C000000000000046}的组件时失败
    C# 文件操作(一)
    Nginx 事件基本处理流程分析
    Spring学习笔记1:概论
  • 原文地址:https://www.cnblogs.com/wcx-20151115-hzz/p/14985411.html
Copyright © 2020-2023  润新知