sha1加密算法
public static void main(String[] args) throws UnsupportedEncodingException {
/*
* 获取jsapi_ticket
*
*/
//获取access_token
String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
accessTokenUrl = accessTokenUrl.replace("APPID", Configure.appID);
accessTokenUrl = accessTokenUrl.replace("APPSECRET", Configure.appsecret);
JSONObject jsonObject = NetTools.httpsRequest(accessTokenUrl, "GET", null);
// System.out.println("jsonObject---"+jsonObject);
String accessToken = (String) jsonObject.get("access_token");
// System.out.println("accessToken---"+accessToken);
//获取jsapi_ticket
String jsapiTicketUrl ="https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi";
jsapiTicketUrl = jsapiTicketUrl.replace("ACCESS_TOKEN", accessToken);
JSONObject jsapiObject = NetTools.httpsRequest(jsapiTicketUrl, "GET", null);
Integer errCode = (Integer) jsapiObject.get("errcode");
// System.out.println("errCode---"+errCode);
String ticket = (String) jsapiObject.get("ticket");
WxPaySendData data = new WxPaySendData();
data.setAppId(Configure.appID);
System.out.println("time--"+Calendar.getInstance().getTimeInMillis()+"".length());
String timeStr = Calendar.getInstance().getTimeInMillis()+"";
timeStr = timeStr.substring(0, 9);
data.setTimeStamp(timeStr);
data.setNonceStr(RandomStringGenerator.getRandomStringByLength(16));
data.setJspUrl("http://dipark.aramark.cn/oosweb/app/wx/recipeOrder/goTo?id=f2d001616b2f403fb13a86af62b61f92");
data.setJsapiTicket(ticket);
// String signature = UnifiedorderService.jsapiSign(data);
System.out.println("ticket---"+ticket);
System.out.println("nonceStr----"+data.getNonceStr());
System.out.println("timestamp----"+data.getTimeStamp());
// System.out.println("signature---"+signature);
//字典序排序
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("jsapi_ticket", data.getJsapiTicket());
map.put("noncestr", data.getNonceStr());
map.put("timestamp", data.getTimeStamp());
map.put("url", data.getJspUrl());
Collection<String> keyset= map.keySet();
List<String> list=new ArrayList<String>(keyset);
Collections.sort(list);
//这种打印出的字符串顺序和微信官网提供的字典序顺序是一致的
String detail = "";
for(int i=0;i<list.size();i++){
if(i == 0 ){
detail = list.get(i)+"="+map.get(list.get(i));
}else{
detail += "&"+list.get(i)+"="+map.get(list.get(i));
}
System.err.println(list.get(i)+"="+map.get(list.get(i)));
}
System.err.println("detail--"+detail);
String s = "jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW×tamp=1414587457&url=http://mp.weixin.qq.com?params=value";
String ss = "jsapi_ticket=kgt8ON7yVITDhtdwci0qeVobpUZDYzWPTM3stkoQPWc3AFG-gv46LxoOBqb9JK7cTZYzNDOI9nS-jcW-ppp9yQ&noncestr=sc1b3z71h2fdf3lu×tamp=1504253434&url=http://dipark.aramark.cn/oosweb/app/wx/recipeOrder/goTo?id=f2d001616b2f403fb13a86af62b61f92";
System.out.println("detail--"+s);
System.out.println("s--+"+getSha1(detail));
}
public static String getSha1(String str){
if (null == str || 0 == str.length()){
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 (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
sha1加密算法的更多相关文章
- iOS sha1加密算法
最近在项目中使用到了网络请求签名认证的方法,于是在网上找关于OC sha1加密的方法,很快找到了一个大众使用的封装好的方法,以下代码便是 首先需要添加头文件 #import<CommonCryp ...
- 如何应对SHA-1加密算法升级为SHA-256
经过权威机构证实,sha1加密算法的不安全性越来越高,sha指纹造假成本越来越低,随即微软.谷歌等IT巨头相继发布弃用sha1加密算法声明,第三方认证机构自2016年1月1日起,将全面停止签发SHA1 ...
- MD5和sha1加密算法
在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加 ...
- MD5和sha1加密算法--散列加密技术 MD5:128bit的大整数
在很多电子商务和社区应用中,我们都要存放很多的客户的资料,其中包括了很多的隐私信息和客户不愿被别人看到的信息,当然好有客户执行各种操作的密码,此时就需要对客户的信息进行加密再存储,目前有两种比较好的加 ...
- openssl 自签名证书SHA1加密算法
openssl genrsa -out privkey.pem 2048 openssl req -new -key privkey.pem -sha1 -out cert.csr openssl r ...
- Java Sha1 加密算法
//下面四个import放在类名前面 包名后面 //import java.io.UnsupportedEncodingException; //import java.security.Messag ...
- SHA-1 加密算法破解现已只需要 10 天
转自:http://www.linuxeden.com/html/news/20151009/163173.html SHA-1是如今很常见的一种加密哈希算法,HTTPS传输和软件签名认证都很喜欢它, ...
- iOS开发之Objective-c的MD5/SHA1加密算法的实现
Objective-c实现MD5和SHA1算法相对还是比较简单的,可以直接调用系统的C/C++共享库来实现调用 MD5即Message Digest Algorithm 5(信息-摘要算法 5),用于 ...
- SHA1加密算法 java
//下面四个import放在类名前面 包名后面 //import java.io.UnsupportedEncodingException; //import java.security.Messag ...
- iOS:Objective-c的MD5/SHA1加密算法的实现
介绍: Objective-c实现MD5和SHA1算法相对还是比较简单的,可以直接调用系统的C/C++共享库来实现调用MD5即Message Digest Algorithm 5(信息-摘要算法 5) ...
随机推荐
- C#将json字符串解析成对象
首先我们在客户端生成json字符串,通过ajax把该字符串传到服务器端 //这是一个以id,email,age的json字符串 var jdata="[{\"id\&quo ...
- 在Delphi中使用键盘勾子获取键盘输入(译--5月7日)
http://blog.sina.com.cn/s/blog_502b2e970100949s.html 获取键盘输入以控制无法接受输入焦点的控件考虑一些游戏,显示图片在TPainBox,但是TPai ...
- Render Texture coordinates
https://docs.unity3d.com/550/Documentation/Manual/SL-PlatformDifferences.html Render Texture coordin ...
- IIS支持伪静态(windows 2003)
IIS配置支持伪静态 ISAPI Rewrite 第一:首先我们需要下载一个ISAPI_Rewrite,有精简版和完全版,一般精简版只能对服务器全局进行配置,而完整版可以对服务器上的各个网站进行伪静态 ...
- 查看tomcat启动文件都干点啥---catalina.bat
在上一次查看tomcat启动文件都干点啥一文中,我们总结出,startup.bat文件的作用就是找到catalina.bat文件,然后把参数传递给它,在startup.bat中,调用catalina. ...
- 【Excle】Countif函数
Countif在Excle中是相当的使用,那么我们看下Countif的如下几个功能: ①一对一对比两列数据 ②输入时必须指定包含指定字符 ③帮助Vlookup实现一对多查找 ④统计不重复的个数 一对一 ...
- 云计算的三种服务模式:IaaS,PaaS和SaaS(转载)
云服务”现在已经快成了一个家喻户晓的词了.如果你不知道PaaS, IaaS 和SaaS的区别,那么也没啥,因为很多人确实不知道. “云”其实是互联网的一个隐喻,“云计算”其实就是使用互联网来接入存储或 ...
- (一)Oracle学习笔记—— 表和表空间
1. 表空间 一个数据库可以有多个表空间,一个表空间里可以有多个表.表空间就是存多个表的物理空间:可以指定表空间的大小位置等. 1.1 创建表空间语句 create tablespace ts3 d ...
- internet与Internet的区别
internet是用一个共同的协议族把多个网络连接在一起.而Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合(超过1 0 0万台).Internet是一个internet,但in ...
- sublime text3 修改左边栏背景颜色为编辑栏颜色
用Package Control安装Theme-Afterglow插件: Ctrl+Shift+P -> install ,如图 点击Install Package,在弹出框中输入Theme-A ...