资源简介
微信公众号JS-SDK权限验证的签名例子,有java,php,python,nodejs版本
代码片段和文件信息
import java.util.UUID;
import java.util.Map;
import java.util.HashMap;
import java.util.Formatter;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.io.UnsupportedEncodingException;
class Sign {
public static void main(String[] args) {
String jsapi_ticket = “jsapi_ticket“;
// 注意 URL 一定要动态获取,不能 hardcode
String url = “http://example.com“;
Map ret = sign(jsapi_ticket url);
for (Map.Entry entry : ret.entrySet()) {
System.out.println(entry.getKey() + “ “ + entry.getValue());
}
};
public static Map sign(String jsapi_ticket String url) {
Map ret = new HashMap();
String nonce_str = create_nonce_str();
String timestamp = create_timestamp();
String string1;
String signature = ““;
//注意这里参数名必须全部小写,且必须有序
string1 = “jsapi_ticket=“ + jsapi_ticket +
“&noncestr=“ + nonce_str +
“×tamp=“ + timestamp +
“&url=“ + url;
System.out.println(string1);
try
{
MessageDigest crypt = MessageDigest.getInstance(“SHA-1“);
crypt.reset();
crypt.update(string1.getBytes(“UTF-8“));
signature = byteToHex(crypt.digest());
}
catch (NoSuchAlgorithmException e)
{
e.printStackTrace();
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
ret.put(“url“ url);
ret.put(“jsapi_ticket“ jsapi_ticket);
ret.put(“nonceStr“ nonce_str);
ret.put(“timestamp“ timestamp);
ret.put(“signature“ signature);
return ret;
}
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;
}
private static String create_nonce_str() {
return UUID.randomUUID().toString();
}
private static String create_timestamp() {
return Long.toString(System.currentTimeMillis() / 1000);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-09-29 08:59 js-sdk sample\
目录 0 2015-09-29 08:59 js-sdk sample\java\
文件 2385 2015-01-29 15:12 js-sdk sample\java\sign.java
目录 0 2015-09-29 08:59 js-sdk sample\node\
文件 313 2014-12-04 10:57 js-sdk sample\node\check_sign.js
目录 0 2015-09-29 08:59 js-sdk sample\node\node_modules\
目录 0 2015-09-29 08:59 js-sdk sample\node\node_modules\jssha\
文件 66 2014-12-04 10:57 js-sdk sample\node\node_modules\jssha\.npmignore
文件 697 2014-12-04 10:57 js-sdk sample\node\node_modules\jssha\bower.json
文件 4244 2014-12-04 10:57 js-sdk sample\node\node_modules\jssha\CHANGELOG
文件 1447 2014-12-04 10:57 js-sdk sample\node\node_modules\jssha\LICENSE
文件 6211 2014-12-04 10:57 js-sdk sample\node\node_modules\jssha\package.json
文件 4490 2014-12-04 10:57 js-sdk sample\node\node_modules\jssha\README.md
目录 0 2015-09-29 08:59 js-sdk sample\node\node_modules\jssha\src\
文件 11882 2014-12-04 10:57 js-sdk sample\node\node_modules\jssha\src\sha.js
文件 284 2014-12-04 10:57 js-sdk sample\node\package.json
文件 1050 2015-01-29 15:14 js-sdk sample\node\sign.js
目录 0 2015-09-29 08:59 js-sdk sample\php\
文件 12288 2015-01-16 11:48 js-sdk sample\php\.jssdk.php.swp
文件 36 2014-12-04 15:54 js-sdk sample\php\access_token.json
文件 36 2014-12-04 15:53 js-sdk sample\php\jsapi_ticket.json
文件 3570 2015-01-29 15:09 js-sdk sample\php\jssdk.php
文件 1674 2015-01-20 11:19 js-sdk sample\php\sample.php
目录 0 2015-09-29 08:59 js-sdk sample\python\
文件 895 2015-01-29 15:13 js-sdk sample\python\sign.py
文件 721 2015-01-08 16:16 js-sdk sample\readme.txt
- 上一篇:android自定义键盘支持遥控器
- 下一篇:javaEE 网上在线销售系统个人项目
评论
共有 条评论