微信打卡小程序怎么做_小程序页面_免费的小程序_免费微信小程序模板库_微信小程序源码下载
当前位置:建站首页 > 新闻资讯 > 常见问题 >

手机微信公共性服务平台认证插口JAVA完成

发表日期:2021-04-07 08:29文章编辑:jianzhan浏览次数: 标签:    

 您如今的部位:  >> 手机微信开发设计 >> 开发设计技术性新闻资讯 开发设计技术性新闻资讯
手机微信公共性服务平台认证插口JAVA完成 海南省保持中立高新科技 | :52 | 阅读文章:7371
见到手机微信的公共性服务平台连接文本文档插口认证的事例是PHP写的,针对许多并不是做php的人来讲有点儿不便,尽管程序编写观念是同样的,逻辑性也非常简单,可是一种語言有一种語言的英语的语法标准,实际上编码的撰写還是差别很大的。这儿写一下JAVA版插口认证的完成。response.setContentType("text/html");PrintWriterout=response.getWriter();Stringsignature=request.getParameter("signature");Stringtimestamp=request.getParameter("timestamp");Stringnonce=request.getParameter("nonce");Stringechostr=request.getParameter("echostr");StringreSignature=null;try{String[]str={TOKEN,timestamp,nonce};Arrays.sort(str);StringbigStr=str[0]+str[1]+str[2];reSignature=newSHA1().getDigestOfString(bigStr.getBytes()).toLowerCase();}catch(Exceptione){e.printStackTrace();}if(null!=reSignature reSignature.equals(signature)){//恳求来源于手机微信out.print(echostr);}else{out.print("errorrequest!therequestisnotfromweixinserver");}out.flush();out.close();拷贝编码逻辑性编码就这种,便是依照文本文档上说的来:1.将token、timestamp、nonce三个主要参数开展字典序排列2.将三个主要参数标识符串拼凑成一字符串开展sha1数据加密3.开发设计者得到数据加密后的标识符串可与signature比照,标志该恳求来源于于手机微信上边编码中有一个专用工具类SHA1,便是完成了一个数据加密解密优化算法,在网上也是有,这儿贴一下编码。packageduanqing.test.servlet.lassSHA1{privatefinalint[]abcde={0x,0xefcdab89,0x98badcfe,0x,0xc3d2e1f0};//引言数据信息储存数字能量数组privateint[]digestInt=newint[5];//测算全过程中的临时性数据信息储存数字能量数组privateint[]tmpData=newint[80];//测算sha-1引言privateintprocess_input_bytes(byte[]bytedata){//初试化变量定义System.arraycopy(abcde,0,digestInt,0,abcde.length);//文件格式化键入字节数数字能量数组,补10及长短数据信息byte[]newbyte=byteArrayFormatData(bytedata);//获得数据信息引言测算的数据信息模块数量intMCount=newbyte.length/64;//循环系统对每一个数据信息模块开展引言测算for(intpos=0;pos MCount;pos++){//将每一个模块的数据信息变换成16个整型数据信息,并储存到tmpData的前16数量组原素中for(intj=0;j j++){tmpData[j]=byteArrayToInt(newbyte,(pos*64)+(j*4));}//引言测算涵数encrypt();}return20;}//文件格式化键入字节数数字能量数组文件格式privatebyte[]byteArrayFormatData(byte[]bytedata){//补0总数intzeros=0;//补位后总十位数intsize=0;//初始数据信息长短intn=bytedata.length;//模64后的剩下十位数intm=n%64;//测算加上0的数量及其加上10后的全长度if(m 56){zeros=55-m;size=n-m+64;}elseif(m==56){zeros=63;size=n+8+64;}else{zeros=63-m+56;size=(n+64)-m+64;}//补位后转化成的新数字能量数组內容byte[]newbyte=newbyte[size];//拷贝数字能量数组的前边一部分System.arraycopy(bytedata,0,newbyte,0,n);//得到数字能量数组Append数据信息原素的部位intl=n;//补1实际操作newbyte[l++]=(byte)0x80;//补0实际操作for(inti=0;i zeros;i++){newbyte[l++]=(byte)0x00;}//测算数据信息长短,补数据信息长短位共8字节数,长整型longN=(long)n*8;byteh8=(byte)(N 0xFF);byteh7=(byte)((N 8) 0xFF);byteh6=(byte)((N 16) 0xFF);byteh5=(byte)((N 24) 0xFF);byteh4=(byte)((N 32) 0xFF);byteh3=(byte)((N 40) 0xFF);byteh2=(byte)((N 48) 0xFF);byteh1=(byte)(N 56);newbyte[l++]=h1;newbyte[l++]=h2;newbyte[l++]=h3;newbyte[l++]=h4;newbyte[l++]=h5;newbyte[l++]=h6;newbyte[l++]=h7;newbyte[l++]=h8;returnnewbyte;}privateintf1(intx,inty,intz){return(x y)|(~x }privateintf2(intx,inty,intz){returnx^y^z;}privateintf3(intx,inty,intz){return(x y)|(x z)|(y }privateintf4(intx,inty){return(x y)|x (32-y);}//模块引言测算涵数privatevoidencrypt(){for(inti=16;i i++){tmpData[i]=f4(tmpData[i-3]^tmpData[i-8]^tmpData[i-14]^tmpData[i-16],1);}int[]tmpabcde=newint[5];for(inti1=0;i1 tmpabcde.length;i1++){tmpabcde[i1]=digestInt[i1];}for(intj=0;j j++){inttmp=f4(tmpabcde[0],5)+f1(tmpabcde[1],tmpabcde[2],tmpabcde[3])+tmpabcde[4]+tmpData[j]+0x5a827999;tmpabcde[4]=tmpabcde[3];tmpabcde[3]=tmpabcde[2];tmpabcde[2]=f4(tmpabcde[1],30);tmpabcde[1]=tmpabcde[0];tmpabcde[0]=tmp;}for(intk=20;k k++){inttmp=f4(tmpabcde[0],5)+f2(tmpabcde[1],tmpabcde[2],tmpabcde[3])+tmpabcde[4]+tmpData[k]+0x6ed9eba1;tmpabcde[4]=tmpabcde[3];tmpabcde[3]=tmpabcde[2];tmpabcde[2]=f4(tmpabcde[1],30);tmpabcde[1]=tmpabcde[0];tmpabcde[0]=tmp;}for(intl=40;l l++){inttmp=f4(tmpabcde[0],5)+f3(tmpabcde[1],tmpabcde[2],tmpabcde[3])+tmpabcde[4]+tmpData[l]+0x8f1bbcdc;tmpabcde[4]=tmpabcde[3];tmpabcde[3]=tmpabcde[2];tmpabcde[2]=f4(tmpabcde[1],30);tmpabcde[1]=tmpabcde[0];tmpabcde[0]=tmp;}for(intm=60;m m++){inttmp=f4(tmpabcde[0],5)+f2(tmpabcde[1],tmpabcde[2],tmpabcde[3])+tmpabcde[4]+tmpData[m]+0xca62c1d6;tmpabcde[4]=tmpabcde[3];tmpabcde[3]=tmpabcde[2];tmpabcde[2]=f4(tmpabcde[1],30);tmpabcde[1]=tmpabcde[0];tmpabcde[0]=tmp;}for(inti2=0;i2 tmpabcde.length;i2++){digestInt[i2]=digestInt[i2]+tmpabcde[i2];}for(intn=0;n tmpData.length;n++){tmpData[n]=0;}}//4字节数数字能量数组变换为整数金额privateintbyteArrayToInt(byte[]bytedata,inti){return((bytedata[i] 0xff) 24)|((bytedata[i+1] 0xff) 16)|((bytedata[i+2] 0xff) 8)|(bytedata[i+3] 0xff);}//整数金额变换为4字节数数字能量数组privatevoidintToByteArray(intintValue,byte[]byteData,inti){byteData[i]=(byte)(intValue byteData[i+1]=(byte)(intValue byteData[i+2]=(byte)(intValue byteData[i+3]=(byte)intValue;}//将字节数变换为十六进制标识符串privatestaticStringbyteToHexString(byteib){char[]Digit={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};char[]ob=newchar[2];ob[0]=Digit[(ib 4) 0X0F];ob[1]=Digit[ib 0X0F];Strings=newString(ob);returns;}//将字节数数字能量数组变换为十六进制标识符串privatestaticStringbyteArrayToHexString(byte[]bytearray){StringstrDigest="";for(inti=0;i bytearray.length;i++){strDigest+=byteToHexString(bytearray[i]);}returnstrDigest;}//测算sha-1引言,回到相对的字节数数字能量数组publicbyte[]getDigestOfBytes(byte[]byteData){process_input_bytes(byteData);byte[]digest=newbyte[20];for(inti=0;i digestInt.length;i++){intToByteArray(digestInt[i],digest,i*4);}returndigest;}//测算sha-1引言,回到相对的十六进制标识符串publicStringgetDigestOfString(byte[]byteData){returnbyteArrayToHexString(getDigestOfBytes(byteData));}publicstaticvoidmain(String[]args){Stringdata="123456";System.out.println(data);Stringdigest=newSHA1().getDigestOfString(data.getBytes()).toLowerCase();System.out.println(digest);//System.out.println(ToMD5.convertSHA1(data).toUpperCase());}}拷贝编码
相关新闻

怎么商城网站缔造-封面图图模版怎样制作微信公

一个好的封面图,这对于公众号运营的人来说是一个大问题,很多好的图片素材可能已经被使...

日期:2021-04-03 浏览次数:155

零售制造行业开发设计手机微信微信小程序的在

零售制造行业开发设计手机微信微信小程序的在移动时期的有没有赢利市场前景? 访问: 品...

日期:2021-04-02 浏览次数:68

搞好手机微信分销商必须什么基本标准

微商代理起源于手机微信微信朋友圈,手机微信分销商也是从而而变为一股风潮,渐渐地的就...

日期:2021-04-01 浏览次数:89

手机微信微信小程序开发设计处理计划方案

伴随着手机微信客户持续提升,应对日此巨大的客户人群,无论是公账司,公司,店家,還是...

日期:2021-03-25 浏览次数:188

手机上企业网站建设规格是如何明确的?

手机上企业网站建设规格是如何明确的?随着下手机网上友的巨曾以及每一个手机上运用服务...

日期:2021-03-25 浏览次数:66

今年微信公众号完全免费增粉的3个合理方式,要

尽管微信公众号一直被抨击,但迄今仍然也有许多人坚持不懈在做。...

日期:2021-03-22 浏览次数:182