前情提要:项目为了安全考虑,使用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中有很多算法,看自己的情况使用,如下: