encodingaeskey java_EncodingAESKey

关键字:EncodingAESKey

公众平台消息体签名及加解密方案概述

1.新增消息体签名验证,用于公众平台和公众账号验证消息体的正确性

2.针对推送给微信公众账号的普通消息和事件消息,以及推送给设备公众账号的设备消息进行加密

3.公众账号对密文消息的回复也要求加密

开发者需注意,公众账号主动调用API的情况将不受影响。

启用加解密功能(即选择兼容模式或安全模式)后,公众平台服务器在向公众账号服务器配置地址(可在“开发者中心”修改)推送消息时,URL将新增加两个参数(加密类型和消息体签名),并以此来体现新功能。加密算法采用AES,具体的加解密流程和方案请看接入指引、技术方案和示例代码。

为了配合消息加密功能的上线,并帮助开发者适配新特性,公众平台提供了3种加解密的模式供开发者选择,即明文模式、兼容模式、安全模式(可在“开发者中心”选择相应模式),选择兼容模式和安全模式前,需在开发者中心填写消息加解密密钥EncodingAESKey。

明文模式:维持现有模式,没有适配加解密新特性,消息体明文收发,默认设置为明文模式

兼容模式:公众平台发送消息内容将同时包括明文和密文,消息包长度增加到原来的3倍左右;公众号回复明文或密文均可,不影响现有消息收发;开发者可在此模式下进行调试

安全模式(推荐):公众平台发送消息体的内容只含有密文,公众账号回复的消息体也为密文,建议开发者在调试成功后使用此模式收发消息

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

此外,微信公众平台为开发者提供了5种语言的示例代码(包括C++、php、Java、Python和C#版本,http://mp.weixin.qq.com/wiki/downloads/SampleCode.zip )。 请开发者查看接入指引和开发者FAQ来接入消息体签名及加解密功能,若关注技术实现,可查看技术方案。

该文档讲述如何使用示例代码接入加解密,参考本文档并使用示例代码,加解密的接入将非常简单。若想进一步的了解细节,请查看技术方案。 微信公众平台提供了C++、php、Java、Python和C# 5种语言的示例代码,每种语言的类名和接口名均一致,下面以C++为例说明:

函数说明

构造函数

// @param sToken: 公众平台上,开发者设置的Token

// @param sEncodingAESKey: 公众平台上,开发者设置的EncodingAESKey

// @param sAppid: 公众号的appid

WXBizMsgCrypt(const std::string &sToken,

const std::string &sEncodingAESKey,

const std::string &sAppid);

解密函数

// 检验消息的真实性,并且获取解密后的明文

// @param sMsgSignature: 签名串,对应URL参数的msg_signature

// @param sTimeStamp: 时间戳,对应URL参数的timestamp

// @param sNonce: 随机串,对应URL参数的nonce

// @param sPostData: 密文,对应POST请求的数据

// @param sMsg: 解密后的明文,当return返回0时有效

// @return: 成功0,失

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值