微信小程序中使用jsencrypt.js加密

5,191 阅读1分钟

一开始不知道怎么写,后来上网搜索了很多,最后找到了这个方法,自己记录一下,感谢大神的文档,同时自己也发布一下,为更多的人带来方便。

第一步,先修改jsencrypt.js文件,需要把window和navigator都替换为最新添加的window2和navigator2

(function (global, factory) {
	typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
	typeof define === 'function' && define.amd ? define(['exports'], factory) :
	(factory((global.JSEncrypt = {})));
}(this, (function (exports) { 'use strict';
    //------- 添加---------
    // 用来替换 navigator2
    var navigator2 = {
        appName: 'Netscape',
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1'
    };
    //  用来替换window2
    var window2 = {
        ASN1: null,
        Base64: null,
        Hex: null,
        crypto: null,
        href: null
    };
    //--------- 完成--------
var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
function int2char(n) {
    return BI_RM.charAt(n);
}
————————————————

第二步,在需要使用的地方引入,记得要设置公钥,我再util中设置的,直接拿来使用

const util = require('../../../utils/util.js')
const Encrypt = require('../../../utils/jsencrypt.js')
let cryptFirst = new Encrypt.JSEncrypt()
cryptFirst.setPublicKey(util.rsa_public_key)

第三步,在需要加密的地方进行加密

    let jsons = {
      tel: account,
      password: pass
    }
    let newJson = JSON.stringify(jsons)

    let regkey = cryptFirst.encrypt(newJson)

来自原文链接