微信团队提供了多种语言的示例代码,但不包含Nodejs实现版本。经过大量查证和尝试,我已完成并测试通过,下面说说实现要点。
准备
- Nodejs为
0.12.1
版或0.12.2
版,当前最新稳定版。 - 平台支持Windows和Linux。
- 基于Python版本改写,通过Python的加解密验证及实际部署验证。
关键点
- 密匙
key
应当通过Buffer
转换为binary字符串。 - 通过
String.fromCharCode
获得补位所用的字符,通过charCodeAt
判断需要删除的补位字符长度。 - 设置明文长度时,应通过
Buf.writeUInt32BE
写入,并转换为binary字符串&#x