vue项目中引入RSA加密和HmacSHA256加密

4,745 阅读1分钟

前情提要:项目为了安全考虑,使用HmacSHA256生成签名,由于前端代码本身的公开性,故对于密码以及SK部分使用RSA不对称加密算法进行加密。话不多说,以下是使用方式:

RSA加密算法使用方式

1.npm引入

npm install jsencrypt --save

2.import

import JsEncrypt from 'jsencrypt'

3.封装方法util

var PublickKey =
  '-----BEGIN PUBLIC KEY-----\
MIIBIjANBgkqhkiG9w0BAQEFAxxCAQ8AMIIBCgKCAQEA0KpM4/Wr4oTMXc8Kn6JQ\
7UgGiYSDxeFfntMjrzLIbwrSZSFWbDlVKx5n7i7kisTla2shna6lYqzrN5urbddZ\
6QJf48ug6kWEuC2KbxxxdTH3tezDWquvQAzM/FP1Ot86i3Pgw+E1ouyLL0QA+UX\
xf70NSusmrhnQfO743qajVL/x4/zdB3fFCMrDRUEpG2WDC4ghScxB/ghqOLw+XRf\
DxLGenkBVz8oF7jg+gMGEveffvZJYLOcC9+qexxxGAUutpec5bIJq0IDFeTHNyoY\
RQGyDM+8/AHWWeZiMk1prVCwG0TA2u7dry6Eioo2P2PMjyRaK32wezCoJmrMp7tq\
vQIDAQAB\
-----END PUBLIC KEY-----'
export const RSAEcrypt = uncrypted => {
  let encrypt = new JSEncrypt()
  encrypt.setPublicKey(PublickKey)
  let encrypted = encrypt.encrypt(uncrypted)
  return encrypted
}

4.使用

let key = RSAEcrypt(key)

HmacSHA256加密使用方式

1.npm引入

npm install crypto-j

2.import

import CryptoJS from 'crypto-js'

3.使用

let SKEnc = CryptoJS.HmacSHA256(body, key)
let sign = CryptoJS.HmacSHA256(body, SKEnc).toString() 

body为你的需要加密的数据,SKEnc是一个对象,sign是一个字符串

PS:CryptoJS中有很多算法,看自己的情况使用,如下: