微信公众号加密规则剖析

加密

signature签名加密

GET 请求

微信:微信的timestamp + 微信的nonce + 配置的token 来生成签名
开发者:微信的timestamp + 微信的nonce + 本地的token 来生成签名,验证消息是否来自微信

通过只有双方知道的token来进行验证

POST 请求

微信:微信的timestamp + 微信的nonce + 配置的token + 加密的密文 来生成签名
开发者:微信的timestamp + 微信的nonce + 本地的token + 加密的密文 来生成签名,验证消息是否来自微信,验证通过,可以放心使用消息体。

reply

开发者:开发者的timestamp + 开发者的nonce + 本地的token + 加密的密文 来生成签名
微信:开发者的timestamp + 开发者的nonce + 配置的token + 加密的密文 来生成签名,验证消息是否来自合法开发者,验证通过,可以放心接收消息体。

其中加密的密文使用了appid和aes加密,由微信提供,防止非法开发者对微信进行reply攻击。

如果您觉得受益了,欢迎打赏鼓励。