微信测试服务器验证sha1加密法,工具类
1 package org.fc.Util; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays; import com.sun.mail.handlers.message_rfc822; public class SignUtil { private static String token="XXXXXX"; /**
* 传入三个参数以及微信的token(静态自己设定)验证,
* @param signature 签名用来核实最后的结果是否一致
* @param timestamp 时间标记
* @param nonce 随机数字标记
* @return 一个布尔值确定最后加密得到的是否与signature一致
*/
public static boolean checkSignature(String signature,
String timestamp,String nonce){
//将传入参数变成一个String数组然后进行字典排序
String[] arr=new String[]{token,timestamp,nonce};
Arrays.sort(arr);
//创建一个对象储存排序后三个String的结合体
StringBuilder content=new StringBuilder();
for(int i=0;i<arr.length;i++){
content.append(arr[i]);
} //启动sha1加密法的工具
MessageDigest md=null;
String tmpStr=null;
try {
md=MessageDigest.getInstance("SHA-1");
//md.digest()方法必须作用于字节数组
byte[] digest=md.digest(content.toString().getBytes());
//将字节数组弄成字符串
tmpStr=byteToStr(digest);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
content=null; return tmpStr!=null?tmpStr.equals(signature.toUpperCase()):false; } /**
* 将字节加工然后转化成字符串
* @param digest
* @return
*/
private static String byteToStr(byte[] digest){
String strDigest="";
for(int i=0;i<digest.length;i++){
//将取得字符的二进制码转化为16进制码的的码数字符串
strDigest+=byteToHexStr(digest[i]);
}
return strDigest;
} /**
* 把每个字节加工成一个16位的字符串
* @param b
* @return
*/
public static String byteToHexStr(byte b){
//转位数参照表
char[] Digit= {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; //位操作把2进制转化为16进制
char[] tempArr=new char[2];
tempArr[0]=Digit[(b>>>4)&0X0F];//XXXX&1111那么得到的还是XXXX
tempArr[1]=Digit[b&0X0F];//XXXX&1111那么得到的还是XXXX //得到进制码的字符串
String s=new String(tempArr);
return s;
}
}
这个方法用于微信。如果有其他作用请分离
微信测试服务器验证sha1加密法,工具类的更多相关文章
- Android分享到微信和朋友圈的工具类
1.只要填写上正确的app_id,且引用上该工具类你就能实现分享到朋友圈和分享到微信. 2.需要到微信平台下载jar包,以及注册一个appid import android.content.Conte ...
- SHA1签名工具类java
package com.net.util; import java.security.MessageDigest; import java.util.Iterator; import java.uti ...
- 手机号码格式验证和 FASTDFS 工具类
常见大陆和香港号码格式验证 import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex ...
- java 验证表单工具类,史上最全
package com.wiker.utils; import java.util.regex.*; /** * * @version 1.0 * @author wiker * @since JDK ...
- java 生成微信的二维码 工具类
package com.app.wii.util; import java.io.File;import java.io.FileInputStream;import java.io.FileOutp ...
- 微信https请求工具类
工作中用到的微信https请求工具类. package com.gxgrh.wechat.tools; import com.gxgrh.wechat.wechatapi.service.System ...
- .net使用正则表达式校验、匹配字符工具类
开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...
- java 微信开发的工具类WeChatUtils
import com.alibaba.fastjson.JSONObject;import com.bhudy.entity.BhudyPlugin;import com.bhudy.service. ...
- Java 后台验证的工具类
Java 后台验证的工具类 public class ValidationUtil { //手机号 public static String mobile = "^( ...
随机推荐
- 两台win7电脑网线直连办法(共享文件夹形式)
一.背景 一台电脑需要测试,但要不停更新APP,可是该电脑没网络,用U盘太繁琐,即想到用网线将两台 电脑直连,一台电脑共享文件夹给另一台电脑,达到交换文件的目的. 感谢Tony(http://www. ...
- 【bzoj1231】[Usaco2008 Nov]mixup2 混乱的奶牛
题目描述 混乱的奶牛[Don Piele, 2007]Farmer John的N(4 <= N <= 16)头奶牛中的每一头都有一个唯一的编号S_i (1 <= S_i <= ...
- Python绘图
1.二维绘图 a. 一维数据集 用 Numpy ndarray 作为数据传入 ply 1. import numpy as np import matplotlib as mpl import mat ...
- 小小C程序(九九乘法表)
用一个简单的嵌套循环实现: #include <stdio.h> int main() { int i,j; ,j=i;i<=&&j<=;) { if (i== ...
- HTML5的File API读取文件信息
html结构: <div id="fileImage"></div> <input type="file" value=" ...
- ovirt配置为cas登录
准备工作 Ovirt测试机.CAS服务器.AD服务器 cas.crt -- CAS服务器的CA证书 allwinner.cer -- CAS服务器的证书颁发机构根证书 Ovirt测试机要求:apach ...
- JSON Accelerator真是个好东西...
支持OBJC,JAVA,Python,OBJC(Core Data),Python(Django) 并实现了NSCoding和NSCoping,方便归档和复制. 再也不用辛辛苦苦的写Model了.. ...
- python3 -pip
https://docs.python.org/3/installing/ ===== pip is the preferred installer program. Starting with Py ...
- Python之Web框架Django
Python之Web框架: Django 一. Django Django是一个卓越的新一代Web框架 Django的处理流程 1. 下载地址 Python 下载地址:https://www.pyt ...
- 【linux】scp命令
scp的作用是在不同主机之间传输文件. 用法: scp user@host:/path1 path2 说明: 把远程主机host中path1的内容拷贝到当前主机的path2 user是远程主机登陆用户 ...