zoukankan      html  css  js  c++  java
  • crypto-js请求加密库

    crypto-js请求加密库

    1.介绍:项目中会有y一些敏感请求的参数,比如用户的登陆信息,还有注册信息就应该对参数进行加密,否则很容易被黑客盗取

    // 安装
    
    npm install crypto-js
    
    
    // utils新建一个js文件,内容如下
    
    export default {
    
      // 加密
      encrypt (word, keyStr) {
    
        if (!word) return
    
        // 没有传递秘钥就使用默认的秘钥,秘钥的数量不能低于16位字符或者数字组成的
        keyStr = keyStr || 'hanxiaojinggvage'
    
        // 如果要加密的参数是对象类型,需要转换成字符串
        if (typeof word === 'object') {
          word = JSON.stringify(word)
        }
    
        // 字符串类型的秘钥或者参数必须先pase以下
        const key = CryptoJS.enc.Utf8.parse(keyStr)
        const srcs = CryptoJS.enc.Utf8.parse(word)
    
        // 开始加密,第一个参数是要加密的参数,第二个参数是加密的秘钥,第三个参数是加密配置
        const encrypted = CryptoJS.AES.encrypt(srcs, key, {
          mode: CryptoJS.mode.ECB,
          padding: CryptoJS.pad.Pkcs7
        })
    
        // 由于CryptoJS生成的密文是一个对象,转为字符串才是后端需要的格式
    
        return encrypted.toString()
      },
    
    
       // 解密
      decrypt (word, keyStr) {
    
        if (!word) return
    
        keyStr = keyStr || 'hanxiaojinggvage'
    
        const key = CryptoJS.enc.Utf8.parse(keyStr)
    
        // 开始解密
        const decrypt = CryptoJS.AES.decrypt(word, key, {
          mode: CryptoJS.mode.ECB,
          padding: CryptoJS.pad.Pkcs7
        })
    
        // 如果是对象类型的参数,那么就转成对象,否则原样返回
        try {
    
          return JSON.parse(CryptoJS.enc.Utf8.stringify(decrypt).toString())
        } catch (error) {
    
          return CryptoJS.enc.Utf8.stringify(decrypt).toString()
        }
      } 
    }
  • 相关阅读:
    java工程中如何连接redis数据库?
    linux启动达梦数据库
    Maven项目无法编译resources文件夹下资源
    java 后端定义的大写字段传到前端后变成小写
    springboot同时接收表单数据和文件
    java:Fastjson将object转为json时"$ref"的相关问题
    consul注册中心搭建
    maven-compiler-plugin 插件详解
    org.activiti.api.runtime.shared.UnprocessableEntityException
    https配置
  • 原文地址:https://www.cnblogs.com/zxuedong/p/12918710.html
Copyright © 2011-2022 走看看