云服务器微信faq,开发者FAQ

出自微信公众平台开发者文档

跳转到: 导航,

搜索

消息加解密功能开发者FAQ

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 微信公众平台接口调试工具是否支持消息体加解密的在线调试?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值