程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 加密-現在用java開發微信還能用柳峰大哥的請求校驗程序麼??

加密-現在用java開發微信還能用柳峰大哥的請求校驗程序麼??

編輯:編程綜合問答
現在用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;

    }

    }
    求解~~~,或者誰有新的請求校驗程序,求網址啊~~~謝謝各位啦~

最佳回答:


參考微信的java最新API

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved