基于 crypto-js 加密解密 的封装

 看了网上各位大佬的  加解密 实现 有些复杂(可能涉及到高阶应用) 鄙人就只是想实现字符串的加密解密,就简单地做了如下封装

先 npm i -s crypto-js

 

找一个文件 放封装的代码 将其导出

import CryptoJS from 'crypto-js'


export default class Encryption {
    //秘钥
   lockKey: any;
    constructor(key) {
        this.lockKey = CryptoJS.enc.Utf8.parse(key) //十六进制数作为密钥 位数为4的倍数
    }

    /**
    * @data 2020/7/8
    * @author yc
    * @descriptuin 加密
    */
    lockInfo(info){
        let returnStr = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(info),this.lockKey,{mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}).toString();
        return returnStr
    }
    /**
    * @data 2020/7/8
    * @author yc
    * @descriptuin  解密
    */
     openInfo(info){
         let returnStr =  CryptoJS.AES.decrypt(info,this.lockKey,{mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);
        return returnStr
    }

}

 

使用 

key 是 秘钥   每次new的时候可以用uuid生成 可以提高加密复杂度,建议放到后端同事返回 

 

由于对称解密使用的算法是 AES-128-CBC算法,数据采用 PKCS#7 填充 , 因此这里的 key 需要位数需要是4的倍数,满足2²

结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值