import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; public class CheckUtil { private static final String token = "MyToken"; /** * 校验绑定微信 */ public static boolean checkSignature(String signature, String timestamp, String nonce) { String[] arr = new String[]{token, timestamp, nonce}; Arrays.sort(arr); StringBuilder content = new StringBuilder(); for (String s : arr) { content.append(s); } String temp = getSha1(content.toString()); return temp.equals(signature); } /** * @param plainText 明文 * @return 32位密文 */ public String encryption(String plainText) { String re_md5 = ""; try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(plainText.getBytes()); byte b[] = md.digest(); int i; StringBuilder buf = new StringBuilder(); for (byte aB : b) { i = aB; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); } re_md5 = buf.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return re_md5; } /** * SHA加密 * */ private 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 (byte byte0 : md) { buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; buf[k++] = hexDigits[byte0 & 0xf]; } return new String(buf); } catch (Exception e) { return null; } } }