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 工业数据采集技术+存储架构推荐
  • ¥15 GPT-SOVITS如何训练少数民族语言支持合成语音
  • ¥20 树莓派4b使用Camera Module 3时出现the system should be configured for the legacy camera stack问题
  • ¥200 GitHub开源程序配置在VScode调试
  • ¥15 爬虫保存的scv文件0kb
  • ¥20 如何实现基于强化学习的带电作业机械臂的运动规划与控制
  • ¥15 使用wpf制作打砖块游戏时遇到的一个Bug
  • ¥15 qrCodeDetector.detectAndDecode
  • ¥15 海洋可控源和大地电磁一维联合反演
  • ¥15 MFC多文档程序获取视图指针问题