1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /**
- * 对开发平台送给公众账号的消息加解密示例代码.
- */
- // ------------------------------------------------------------------------
- package com.yihu.utils.aes;
- import java.security.MessageDigest;
- import java.util.Arrays;
- /**
- * SHA1 class
- *
- * 计算公众平台的消息签名接口.
- */
- class SHA1 {
- /**
- * 用SHA1算法生成安全签名
- * @param token 票据
- * @param timestamp 时间戳
- * @param nonce 随机字符串
- * @param encrypt 密文
- * @return 安全签名
- * @throws AesException
- */
- public static String getSHA1( String timestamp, String encrypt) throws AesException
- {
- try {
- String[] array = new String[] { timestamp, encrypt };
- StringBuffer sb = new StringBuffer();
- // 字符串排序
- Arrays.sort(array);
- for (int i = 0; i < 2; i++) {
- sb.append(array[i]);
- }
- String str = sb.toString();
- // SHA1签名生成
- MessageDigest md = MessageDigest.getInstance("SHA-1");
- md.update(str.getBytes());
- byte[] digest = md.digest();
- StringBuffer hexstr = new StringBuffer();
- String shaHex = "";
- for (int i = 0; i < digest.length; i++) {
- shaHex = Integer.toHexString(digest[i] & 0xFF);
- if (shaHex.length() < 2) {
- hexstr.append(0);
- }
- hexstr.append(shaHex);
- }
- return hexstr.toString();
- } catch (Exception e) {
- e.printStackTrace();
- throw new AesException(AesException.ComputeSignatureError);
- }
- }
- }
|