求代码检查
package com.weixin.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; public class CheckUtil { private static final String token = "Imooc"; public static boolean checkSignature(String signature, String timestamp, String nonce) { String[] args = new String[] { token, timestamp, nonce }; Arrays.sort(args); StringBuffer content = new StringBuffer(); for (int i = 0; i < args.length; i++) { content.append(args[i]); } // 加密 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 (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
老师这里面的代码哪里错了,绑定微信公众号时,老是报token错误,我token确定是一直的,加密后的值与signature我debug查看是不一致的,但我对照你的代码,看不错问题