微信支付--工具类--创建签名
2015-11-24 10:16
393 查看
import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Formatter; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.SortedMap; /* '============================================================================ 'api说明: 'createSHA1Sign创建签名SHA1 'getSha1()Sha1签名 '============================================================================ '*/ public class Sha1Util { // 创建签名SHA1 public static String createSHA1Sign(SortedMap<String, String> signParams) { StringBuffer sb = new StringBuffer(); Set es = signParams.entrySet(); Iterator it = es.iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String k = (String) entry.getKey(); String v = (String) entry.getValue(); sb.append(k + "=" + v + "&"); // 要采用URLENCODER的原始值! } String params = sb.substring(0, sb.lastIndexOf("&")); System.out.println("sha1 sb:" + params); String sign = null; try { MessageDigest crypt = MessageDigest.getInstance("SHA-1"); crypt.reset(); crypt.update(params.getBytes("UTF-8")); sign = byteToHex(crypt.digest()); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return sign; } private static String byteToHex(final byte[] hash) { Formatter formatter = new Formatter(); for (byte b : hash) { formatter.format("%02x", b); } String result = formatter.toString(); formatter.close(); return result; } }
相关文章推荐
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--随机字符串
- 微信支付--工具类--MD5
- 微信支付--工具类--MD5