项目本来是使用的是jsencrypt 加密,但是甲方觉得这种加密方式并不是很安全,改为Implement RSA encryption with OAEP padding(使用OAEP填充实现RSA加密)。网上找了很久OAEP的加密, 感觉方案不多,最后采用了jsrsasign,加密参数使用key size =2048 , RSA/NONE/OAEPWithSHA1AndMGF1Padding,
jsrsasign在vue中 具体使用方法 :参考 blog.csdn.net/lookBackwar… ,本地调试加密解密网站 www.javainuse.com/rsagenerato… 在小程序中使用方法如下:找到vue下的node_modules/jsrsasign/lib/jsrsasign.js,复制到小程序,此文件可以直接在小程序中引入使用(不会像jsencrypt不兼容小程序,需要调整源码)
function encryptNetwork(encryptData) {
let publicKeyNetwork = ''// 转换成pem格式的秘钥, 生成秘钥实例 (RSAKey)
const publicPemKey = '-----BEGIN PUBLIC KEY-----\n' + publicKeyNetwork + '\n-----END PUBLIC KEY-----'
var pub = jsrsasign.KEYUTIL.getKey(publicPemKey)
// var enc = jsrsasign.KJUR.crypto.Cipher.encrypt(encryptData, pub)
// return enc
var enc = jsrsasign.KJUR.crypto.Cipher.encrypt(encryptData, pub, 'RSAOAEP') //此为添加OAEP填充方式的加密方法
return jsrsasign.hextob64(enc)
module.exports = {
encryptNetwork:encryptNetwork
附上jsencrypt使用方法
let cryptFirst = new Encrypt.JSEncrypt();
cryptFirst.setPublicKey(util.publicKey());
cryptFirst.encrypt(yourPassword)
宋宋445