如下代码引入了spring-boot的包

package openresty;

import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.MessageDigest;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class OpenrestySign { public static void main(String[] args) throws IOException {
OpenrestySign.run(OpenrestySign.class, args); HashMap<String,String> params = new HashMap<String,String>(); params.put("key", "1");
params.put("a", "1");
params.put("c", "w");
params.put("b", "2"); long time = new Date().getTime(); params.put("time", "" + time); System.out.println(time); String sign = getSignature(params,"123456"); System.out.println(sign); params.put("sign", sign); String resp = HttpsUtil.doGet("http://10.11.0.215/sign",params); System.out.println(resp);
} /**
* 签名生成算法
* @param HashMap<String,String> params 请求参数集,所有参数必须已转换为字符串类型
* @param String secret 签名密钥
* @return 签名
* @throws IOException
*/
public static String getSignature(HashMap<String,String> params, String secret) throws IOException
{
// 先将参数以其参数名的字典序升序进行排序
Map<String, String> sortedParams = new TreeMap<String, String>(params);
Set<Entry<String, String>> entrys = sortedParams.entrySet(); // 遍历排序后的字典,将所有参数按"key=value"格式拼接在一起
StringBuilder basestring = new StringBuilder();
for (Entry<String, String> param : entrys) {
if(basestring.length() != 0){
basestring.append("&");
}
basestring.append(param.getKey()).append("=").append(param.getValue());
}
basestring.append("&");
basestring.append(secret); System.out.println("basestring="+basestring); // 使用MD5对待签名串求签
byte[] bytes = null;
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
bytes = md5.digest(basestring.toString().getBytes("UTF-8"));
} catch (GeneralSecurityException ex) {
throw new IOException(ex);
} String strSign = new String(bytes);
System.out.println("strSign="+strSign);
// 将MD5输出的二进制结果转换为小写的十六进制
StringBuilder sign = new StringBuilder();
for (int i = 0; i < bytes.length; i++) {
String hex = Integer.toHexString(bytes[i] & 0xFF);
if (hex.length() == 1) {
sign.append("0");
}
sign.append(hex);
}
return sign.toString();
}
}

默认直接下载spring-boot的jar包并且引入是不行的,需要新建maven的项目,通过修改pom.xml自动下载依赖

pom.xml内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>openresty</groupId>
<artifactId>openresty</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>openresty</name>
<url>http://maven.apache.org</url> <properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> <repositories>
<repository>
<id>repository.spring.release</id>
<name>Spring GA Repository</name>
<url>http://repo.spring.io/release</url>
</repository>
</repositories> </project>

最新文章

  1. Linux C 收藏
  2. VisualSVN-Server 安装以及使用教程
  3. 在Windows8下安装SQL Server 2005无法启动服务
  4. Node.js 开发模式(设计模式)
  5. 手机QQ v4.2 有感
  6. Java阶段性测试--知识点:数组,面向对象,集合、线程,IO流
  7. INS-30002 口令和确认口令不同
  8. MYSQL实战
  9. instrument 之 core animation
  10. java基础概念
  11. 列举一些 MacBook Pro 必需的外设和应用程序推荐
  12. HTML文本格式化与HTML 超链接
  13. 安装eclipse、maven等JAVA开发环境
  14. PAT 甲级 1115 Counting Nodes in a BST
  15. php 会话控制(Session会话控制)
  16. 「美团 CodeM 资格赛」跳格子
  17. css3中自定义 placeholder 文本颜色
  18. linux自学(二)之centos7镜像安装
  19. c语言入门这一篇就够了-学习笔记(一万字)
  20. some words

热门文章

  1. pdftk - handy tool for manipulating PDF 免费的pdf合并工具
  2. Office2016专业增强版永久激活
  3. Union-Find(并查集): Quick union improvements
  4. Mybatis下Oracle插入新增返回主键id
  5. go协程的特点
  6. sql server 行转列和列转行的使用
  7. ElasticSearch 初识ES
  8. 021_Python3 OS 文件/目录方法
  9. PureComponent下setstate不重新渲染
  10. 18、TaskScheduler原理剖析与源码分析