消息体签名与加解密-开发者Q
创始人
2025-01-10 12:40:18
0次

Q 为什么要上线消息加密功能?

A 为了更好的保护用户和公众账号的信息安全。

Q 接入消息加解密功能复杂吗?

A 开发者接入消息加解密功能并不复杂,微信团队提供了5种语言的示例代码(包括C++、php、Python、Java和C#),对于使用这个5种语言的开发者,只需根据《消息加解密接入指引》,参考示例代码,调用微信公众平台提供的函数即可;而对于其他语言的开发者,需根据《消息加解密详细技术方案》编写相关代码。

Q 消息加密功能将带来哪些重要变化?

A 有如下几个方面:

选择明文模式时,收发消息的方式和原先相同,但安全系数较低,微信团队推荐开发者在兼容模式下开发调试,并升级到安全模式;

选择兼容模式时,消息包同时包括明文和密文,消息包的长度会相应增加到原来的3倍左右,开发者需检查系统,做好预留,防止因消息变长而接收出错;

兼容模式和安全模式下,公众平台服务器向公众账号服务器配置地址URL推送消息时,将会增加两个参数;

安全模式下,内容为纯密文,请提前做好接收消息的解密工作和回复消息的加密工作。

Q 什么是EncodingAESKey?

A 微信公众平台采用AES对称加密算法对推送给公众帐号的消息体对行加密,EncodingAESKey则是加密所用的秘钥。公众帐号用此秘钥对收到的密文消息体进行解密,回复消息体也用此秘钥加密。

Q 开发者如何判断消息是否被加密?什么情况下需要对回包进行加密?

A 请开发者根据URL参数来判断:url上无encrypt_type参数或者其值为raw,表示消息体仅含有明文,公众账号回复明文。encrypt_type为aes则表示消息体含有密文,公众账号回复密文(兼容模式期间回复明文或密文均可)。

Q 公众账号开发者上线加解密版本后,还需要保留明文解包和回包逻辑吗?

A 暂时先保留之前的逻辑,根据参数判断,也做成兼容模式比较好。

Q 常见错误举例

A 常见错误原因如:

xml格式不对:如写成了 (s小写了且p和>中间有空格)

公众平台网站提供了修改EncodingAESKey的功能,公众账号需要保存当前的和上一次的EncodingAESKey,若当前的EncodingAESKey解密失败,则尝试用上一次的EncodingAESKey解密。回包时,用哪个Key解密成功,则用此Key加密对应的回包

调用DecryptMsg解密时,传入的是url上的msg_signature,而不是signature

Java要求jdk 1.6及1.6以上

异常java.security.InvalidKeyException:illegal Key Size的解决方案:在官方网站下载JCE无限制权限策略文件(请到官网下载对应的版本, 例如JDK7的下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html 下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt,如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security目录下覆盖原来的文件;如果安装了JDK,将两个jar文件放到%JDK_HOME%\jre\lib\security目录下覆盖原来文件

Q 微信公众平台接口调试工具是否支持消息体加解密的在线调试?

A 点击http://mp.weixin.qq.com/debug

相关内容

热门资讯

PHP新手之PHP入门 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的...
网络中立的未来 网络中立性是什... 《牛津词典》中对“网络中立”的解释是“电信运营商应秉持的一种原则,即不考虑来源地提供所有内容和应用的...
各种千兆交换机的数据接口类型详... 千兆交换机有很多值得学习的地方,这里我们主要介绍各种千兆交换机的数据接口类型,作为局域网的主要连接设...
粉嫩如何诠释霸道 东芝M805... “霸道粉”是个什么玩意东芝M805拿过来的时候,笔者扑哧笑了,不是笑这款笔记本,而是笑这款产品的颜色...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
什么是大数据安全 什么是大数据... 在《为什么需要大数据安全分析》一文中,我们已经阐述了一个重要观点,即:安全要素信息呈现出大数据的特征...
全面诠释网络负载均衡 负载均衡的出现大大缓解了服务器的压力,更是有效的利用了资源,提高了效率。那么我们现在来说一下网络负载...
如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
30分钟搞定iOS自定义相机 最近公司的项目中用到了相机,由于不用系统的相机,UI给的相机切图,必须自定义才可以。就花时间简单研究...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...