SHA1签名工具类java
package com.net.util;import java.security.MessageDigest;
import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.SortedMap;/*
'============================================================================
'api说明:
'createSHA1Sign创建签名SHA1
'getSha1()Sha1签名
'============================================================================
'*/
public class Sha1Util {public static String getNonceStr() {Random random = new Random();return MD5Util.MD5Encode(String.valueOf(random.nextInt(10000)), "UTF-8");}public static String getTimeStamp() {return String.valueOf(System.currentTimeMillis() / 1000);}//创建签名SHA1public static String createSHA1Sign(SortedMap<String, String> signParams) throws Exception {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之前:" + params);
//        System.out.println("SHA1签名为:"+getSha1(params));return getSha1(params);}//Sha1签名public static String getSha1(String str) {if (str == null || str.length() == 0) {return null;}char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9','a', 'b', 'c', 'd', 'e', 'f' };try {MessageDigest mdTemp = MessageDigest.getInstance("SHA1");mdTemp.update(str.getBytes("UTF-8"));byte[] md = mdTemp.digest();int j = md.length;char buf[] = new char[j * 2];int k = 0;for (int i = 0; i < j; i++) {byte byte0 = md[i];buf[k++] = hexDigits[byte0 >>> 4 & 0xf];buf[k++] = hexDigits[byte0 & 0xf];}return new String(buf);} catch (Exception e) {return null;}}
}

posted on 2017-04-22 19:54 <&nbsp/> 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/zhangdiIT/p/6748959.html

SHA1签名工具类java相关推荐

  1. 腾讯开放平台接口鉴权(计算签名)工具类 java版

    腾讯开放平台 接口鉴权(签名)工具类 java版 用到了Hutool工具类 package top.seasmall.platform.core.config.nettyws.util;import ...

  2. java签名软件_Java实现签名工具类

    一 点睛 签名和验证签名常常用于网络安全,在此提供一个工具类. 二 代码 package com.imooc.demo.common.util; import org.apache.commons.c ...

  3. MD5工具类(java实现版)

    MD5工具类(java实现版) 介绍 MD5(Message Digest Algorithm)加密算法是不对称的加密算法,因为其实不可逆的,实际上其不能算作加密算法, 因为其不可解密.其实现原理是基 ...

  4. 自定义日期工具类 java 1614698552

    自定义日期工具类 java 1614698552 需求 思路 演练 日期转字符串的方法 字符串转日期方法 测试类 更多尝试 测试另一个方法

  5. 财务转换工具 - 人民币金额转大写工具类 java 版本

    文章目录 财务转换工具 - 人民币金额转大写工具类 java 版本 1.示例 2.代码 财务转换工具 - 人民币金额转大写工具类 java 版本 1.示例 public static void mai ...

  6. Java之加密工具类java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils

    Java之加密(信息摘要)工具类(依赖:java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils) 1. java ...

  7. java 路径 工具类,java 绝对路径工具类

    在程中我们常取一些资源的绝对径,下面给出一个简单方便的工具类来帮助我们轻松的找到我想的资源.(适用于CS/BS应用) import java.io.File; import java.io.IOExc ...

  8. java分页的工具类,java分页工具类

    PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...

  9. java配置文件工具类,java项目加载配置文件的工具类

    java项目加载配置文件的工具类 package com.loadproperties; import java.io.IOException; import java.io.InputStream; ...

最新文章

  1. 学会使用 diff 和 patch 命令协同开发
  2. [转载] New Concept English 1——Lesson 7 Are you a teacher?
  3. LeetCode 349. 两个数组的交集(哈希)
  4. linux下collada-dom编译,Building Collada
  5. 学习webpack4 - ES6语法转化
  6. 9076什么意思_(9076)《人力资源开发与管理》网上作业题及答案
  7. 云端之战:Google Cloud 的多云战略和甲骨文的数据库云
  8. linux系统各种日志存储路径和详细介绍
  9. c++ 未定义标识符string_Redis之String的数据结构
  10. 基于springboot的失物招领系统
  11. C#调用新浪微博API生成RSS资源文件
  12. 《统计学》第八版贾俊平第九章分类数据分析知识点总结及课后习题答案
  13. Unity Line接入
  14. linux如何新增dwployop用户,Linux(Centos)快速搭建SVN
  15. jQuery动画slideUp()不正常位移原因
  16. QCustomPlot 1.0.1学习(5)-Sinc函数绘制
  17. 岁月划过生命线(2016 年终总结 -季度之星)
  18. 由于找不到msvcp140.dll,无法继续执行代码。重新安装可能会解决此问题
  19. 国产服务器飞腾/鲲鹏/龙芯下Linux(统信UOS、麒麟系统)下GB28181/Onvif/RTSP监控视频平台的部署操作
  20. 骨传导有没有副作用?骨传导耳机有什么优点吗?

热门文章

  1. 堆的应用--并查集解决“擒贼先擒王”问题(JAVA)
  2. windows定时任务
  3. Kerberos:cannot get master principle
  4. python re.split_python re模块re.split将字符串分割后返回列表
  5. mysql 占用的解决_解决 MySQL 突然占用全部内存的问题
  6. 混凝土静力受压弹性模量试验计算公式_【小马建考干货】天天送检,你知道混凝土试块检测哪些性能标指吗?...
  7. java ajax传输图片_Java使用Ajax实现跨域上传图片功能
  8. 各种门锁的内部结构图_便宜超好用:小米智能门锁 E上手体验报告
  9. 详解中奖概率逻辑:为什么你中不了特等奖(附原件)
  10. 锻炼产品架构思维的4个维度