public class CheckUtil {
public static final String token="qweqwe";
public static boolean checkSignature(String signature,String timestamp,String nonce){
String[] arr=new String[]{token,timestamp,nonce};
//排序
Arrays.sort(arr);
//生成字符串
StringBuffer content=new StringBuffer();
for(int i=0;i<content.length();i++){
content.append(arr[i]);
}
//sha1加密
String temp=getSha1(content.toString());
return temp.equals(signature);
}
public static String getSha1(String str){
if(str==null||str.length()==0){
return null;
}
char hexDigits[]={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
try{
MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
mdTemp.update(str.getBytes("UTF-8"));
byte[] md=mdTemp.digest();
int j=md.length;
char buf[] = new char[j*2];
int k=0;
for(int i=0;i<j;i++){
byte byte0=md[i];
buf[k++]=hexDigits[byte0>>>4&0xf];
buf[k++]=hexDigits[byte0&0xf];
}
return new String(buf);
}catch(Exception e){
return null;
}
}
}
这是验证Token的代码,实在不知道哪里错了,请大家帮帮忙
解决方案