sinat_bond 2015-11-13 04:19 采纳率: 25%
浏览 2003
已采纳

现在用java开发微信还能用柳峰大哥的请求校验程序么??

现在用java开发微信还能用柳峰大哥的请求校验程序么??
package org.liufeng.course.util;

mport java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import java.util.Arrays;

/**

  • 请求校验工具类
  • @author liufeng
  • @date 2013-09-01

    */

    public class SignUtil {

    // 与开发模式接口配置信息中的Token保持一致

    private static String token = "weixinCourse";

    /**

  • 校验签名

  • @param signature 微信加密签名

  • @param timestamp 时间戳

  • @param nonce 随机数

  • @return

    */

    public static boolean checkSignature(String signature, String timestamp, String nonce) {

    // 对token、timestamp和nonce按字典排序

    String[] paramArr = new String[] { token, timestamp, nonce };

    Arrays.sort(paramArr);

    // 将排序后的结果拼接成一个字符串

    String content = paramArr[0].concat(paramArr[1]).concat(paramArr[2]);

    String ciphertext = null;

    try {

    MessageDigest md = MessageDigest.getInstance("SHA-1");

    // 对拼接后的字符串进行sha1加密

    byte[] digest = md.digest(content.toString().getBytes());

    ciphertext = byteToStr(digest);

    } catch (NoSuchAlgorithmException e) {

    e.printStackTrace();

    }

    // 将sha1加密后的字符串与signature进行对比

    return ciphertext != null ? ciphertext.equals(signature.toUpperCase()) : false;

    }

    /**

  • 将字节数组转换为十六进制字符串

  • @param byteArray

  • @return

    */

    private static String byteToStr(byte[] byteArray) {

    String strDigest = "";

    for (int i = 0; i < byteArray.length; i++) {

    strDigest += byteToHexStr(byteArray[i]);

    }

    return strDigest;

    }

/**

  • 将字节转换为十六进制字符串
  • @param mByte
  • @return

    */

    private static String byteToHexStr(byte mByte) {

    char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',

    'B', 'C', 'D', 'E', 'F' };

    char[] tempArr = new char[2];

    tempArr[0] = Digit[(mByte >>> 4) & 0X0F];

    tempArr[1] = Digit[mByte & 0X0F];

    String s = new String(tempArr);

    return s;

    }

    }
    求解~~~,或者谁有新的请求校验程序,求网址啊~~~谢谢各位啦~

  • 写回答

1条回答 默认 最新

  • Mr-稻帅 2015-11-13 08:15
    关注

    参考微信的java最新API

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料