微信消息体及加密和解密

微信消息体及加密和解密

ID:22873151

大小:165.50 KB

页数:10页

时间:2018-11-01

微信消息体及加密和解密_第1页
微信消息体及加密和解密_第2页
微信消息体及加密和解密_第3页
微信消息体及加密和解密_第4页
微信消息体及加密和解密_第5页
资源描述:

《微信消息体及加密和解密》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、微信消息体加密接入LiCaigen2015.2在2014年10月微信发布了一则公告,公告的标题为“公众平台安全升级,消息体签名及加密功能上线”,在公告中,微信称“目前,公众平台推送给公众账号的基础消息和公众账号回复的响应消息存在一定程度的安全风险”。那么,如何解决这个安全问题,避免风险?微信也给出了它的方案-AES加密。相应的微信也给出了SampleCode。注意:在公告页面虽然有SampleCode的下载地址,但是链接已经被删除了,你无法从这里下载。那么,哪里可以下载呢?笔者发现,在微信公共平台开发文档(http://mp.weixin.

2、qq.com/wiki/home/index.html)的消息体签名及加解密一项中的方案概述中包含下载地址(http://mp.weixin.qq.com/wiki/static/assets/a5a22f38cb60228cb32ab61d9e4c414b.zip)。下面就如何将接入更新到安全模式做讲解。我们运用微信提供的com.qq.weixin.mp.aes包来进行开发。消息接收://完全加密的消息解密StringmsgSignature=getRequest().getParameter("msg_signature");Strin

3、gtimestamp=getRequest().getParameter("timestamp");Stringnonce=getRequest().getParameter("nonce");System.out.println(msgSignature+"******************");System.out.println(timestamp+"******************");System.out.println(nonce+"******************");InputStreaminput=g

4、etRequest().getInputStream();Stringxml=IOUtils.toString(input);xml=AesUtil.getDecryptMsg(msgSignature,timestamp,nonce,xml);...(接下来和原来的保持一致)消息回复:...(和原来的保持一致)(responseMessage为要回复的xml,原先的明文XML)responseMessage=AesUtil.getEncryptMsg(wxAccount,responseMessage);//wxAccount为发送消息用

5、户的openidSystem.out.println(responseMessage);responseOutXml(responseMessage);AesUtil.javapackagecom.qq.weixin.mp.aes;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Random;publicclassAesUtil{privatestaticStringencodingAesKey="你的AESKEY";privatestaticStr

6、ingtoken="你的TOKEN";privatestaticStringappId="你的APPID";publicstaticStringgetEncryptMsg(StringtoUser,StringreplyMsg){try{//需要加密的明文Stringtimestamp=getTimeStamp();Stringnonce=getRandomCharacter(32);WXBizMsgCryptpc=newWXBizMsgCrypt(token,encodingAesKey,appId);Stringmingwen=pc.e

7、ncryptMsg(replyMsg,timestamp,nonce);System.out.println("加密后:"+mingwen);mingwen=mingwen.replace("",String.format("",toUser));System.out.println(mingwen);returnmingwen;//DocumentBuilderFactorydbf=DocumentBuilderFactory.newIn

8、stance();//DocumentBuilderdb=dbf.newDocumentBuilder();//StringReadersr=newStringReader(mi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。