zoukankan      html  css  js  c++  java
  • 16进制

    public static boolean checkSignature(String signature, String timestamp, String nonce) {
    		String[] arr = new String[] { token, timestamp, nonce };
    		// 将token、timestamp、nonce三个参数进行字典序排序
    		Arrays.sort(arr);
    		StringBuilder content = new StringBuilder();
    		for (int i = 0; i < arr.length; i++) {
    			content.append(arr[i]);
    		}
    		MessageDigest md = null;
    		String tmpStr = null;
    
    		try {
    			md = MessageDigest.getInstance("SHA-1");
    			// 将三个参数字符串拼接成一个字符串进行sha1加密
    			byte[] digest = md.digest(content.toString().getBytes());
    			tmpStr = byteToStr(digest);
    		} catch (NoSuchAlgorithmException e) {
    			e.printStackTrace();
    		}
    
    		content = null;
    		// 将sha1加密后的字符串可与signature对比,标识该请求来源于微信
    		return tmpStr != null ? tmpStr.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];

    // 一个字节 8位 右移四位挤掉取高四位(取高四位)
    tempArr[0] = Digit[(mByte >>> 4) & 0X0F]; 
    tempArr[1] = Digit[mByte & 0X0F];
    // 一个字节 8位 与0x0f 得到后四位  刚好在0-15之间  在字符数组长度内(取低四位)
    		String s = new String(tempArr);
    		return s;
    	}
    }
    

      

  • 相关阅读:
    事以密成,能者低调
    时间过得真快,一晃三年过去了
    读书随记2011111
    Makefile
    ubuntu 7 下 tftp 的配置
    uboot移植到nano2410
    ubuntu 7.04 Feisty Fawn 安装手记之五:安装常用软件
    移植linux2.6.18到arm9
    移植busybox 1.4.2
    UBoot中SMDK2410的NAND Flash驱动。
  • 原文地址:https://www.cnblogs.com/sallet/p/3965817.html
Copyright © 2011-2022 走看看