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;}} }
转载于:https://www.cnblogs.com/zhangdiIT/p/6748959.html
SHA1签名工具类java相关推荐
- 腾讯开放平台接口鉴权(计算签名)工具类 java版
腾讯开放平台 接口鉴权(签名)工具类 java版 用到了Hutool工具类 package top.seasmall.platform.core.config.nettyws.util;import ...
- java签名软件_Java实现签名工具类
一 点睛 签名和验证签名常常用于网络安全,在此提供一个工具类. 二 代码 package com.imooc.demo.common.util; import org.apache.commons.c ...
- MD5工具类(java实现版)
MD5工具类(java实现版) 介绍 MD5(Message Digest Algorithm)加密算法是不对称的加密算法,因为其实不可逆的,实际上其不能算作加密算法, 因为其不可解密.其实现原理是基 ...
- 自定义日期工具类 java 1614698552
自定义日期工具类 java 1614698552 需求 思路 演练 日期转字符串的方法 字符串转日期方法 测试类 更多尝试 测试另一个方法
- 财务转换工具 - 人民币金额转大写工具类 java 版本
文章目录 财务转换工具 - 人民币金额转大写工具类 java 版本 1.示例 2.代码 财务转换工具 - 人民币金额转大写工具类 java 版本 1.示例 public static void mai ...
- Java之加密工具类java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils
Java之加密(信息摘要)工具类(依赖:java.security.MessageDigest或org.apache.commons.codec.digest.DigestUtils) 1. java ...
- java 路径 工具类,java 绝对路径工具类
在程中我们常取一些资源的绝对径,下面给出一个简单方便的工具类来帮助我们轻松的找到我想的资源.(适用于CS/BS应用) import java.io.File; import java.io.IOExc ...
- java分页的工具类,java分页工具类
PageBean-分页 package com.soyea.util; import java.io.Serializable; import java.util.List; /** * 分页工具类 ...
- java配置文件工具类,java项目加载配置文件的工具类
java项目加载配置文件的工具类 package com.loadproperties; import java.io.IOException; import java.io.InputStream; ...
最新文章
- 学会使用 diff 和 patch 命令协同开发
- [转载] New Concept English 1——Lesson 7 Are you a teacher?
- LeetCode 349. 两个数组的交集(哈希)
- linux下collada-dom编译,Building Collada
- 学习webpack4 - ES6语法转化
- 9076什么意思_(9076)《人力资源开发与管理》网上作业题及答案
- 云端之战:Google Cloud 的多云战略和甲骨文的数据库云
- linux系统各种日志存储路径和详细介绍
- c++ 未定义标识符string_Redis之String的数据结构
- 基于springboot的失物招领系统
- C#调用新浪微博API生成RSS资源文件
- 《统计学》第八版贾俊平第九章分类数据分析知识点总结及课后习题答案
- Unity Line接入
- linux如何新增dwployop用户,Linux(Centos)快速搭建SVN
- jQuery动画slideUp()不正常位移原因
- QCustomPlot 1.0.1学习(5)-Sinc函数绘制
- 岁月划过生命线(2016 年终总结 -季度之星)
- 由于找不到msvcp140.dll,无法继续执行代码。重新安装可能会解决此问题
- 国产服务器飞腾/鲲鹏/龙芯下Linux(统信UOS、麒麟系统)下GB28181/Onvif/RTSP监控视频平台的部署操作
- 骨传导有没有副作用?骨传导耳机有什么优点吗?
热门文章
- 堆的应用--并查集解决“擒贼先擒王”问题(JAVA)
- windows定时任务
- Kerberos:cannot get master principle
- python re.split_python re模块re.split将字符串分割后返回列表
- mysql 占用的解决_解决 MySQL 突然占用全部内存的问题
- 混凝土静力受压弹性模量试验计算公式_【小马建考干货】天天送检,你知道混凝土试块检测哪些性能标指吗?...
- java ajax传输图片_Java使用Ajax实现跨域上传图片功能
- 各种门锁的内部结构图_便宜超好用:小米智能门锁 E上手体验报告
- 详解中奖概率逻辑:为什么你中不了特等奖(附原件)
- 锻炼产品架构思维的4个维度