1.0.1 • Published 6 years ago
wechat-encodingaeskey v1.0.1
wechat-encodingAESKey
微信官方只提供了C++、php、Java、Python和C#版本的示例代码,看了官方算法和部分别人的轮子。造出这个轮子.本文在Node环境中测试通过,在浏览器中没有测试过。
微信公众号消息加密解密,支持 node > 8.0
npm install wechat-encodingaeskey --save
var WXCrypto = require('wechat-encodingAESKey');
var wx = new WXCrypto(token, aesKey, appid);
var encryptedXML = wx.encrypt(需要加密的字段, timestamp, nonce); // 加密 输出是字符串
var decryptedXML = wx.decrypt(signature, timestamp, nonce, 加密的字符串); //解密 输出是xml
##提示##
timestamp,nonce,signature 自行解析来源,本程序在KOA2上测试成功,给出部分代码仅供参考
var wx = new WXCrypto(token, aesKey, appid) //自行填写;
var decryptedXML = await wx.decrypt(ctx.query.msg_signature, ctx.query.timestamp, ctx.query.nonce, xml.Encrypt[0]);
解密后是xml格式,可以通过xml2json自行解析
npm install xml2json --save
js
xml2json
var parseString = require('xml2js').parseString;
var decryptedjson
await parseString(decryptedXML, function (err, result) {
decryptedjson = result
});
console.log( decryptedjson.xml.Content[0] )
尤其Github上一篇代码,没找到出处,感谢所有轮主。