資源簡(jiǎn)介
微信公眾號(hào)JS-SDK權(quán)限驗(yàn)證的簽名例子,有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?一定要?jiǎng)討B(tài)獲取,不能?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?=?““;
????????//注意這里參數(shù)名必須全部小寫,且必須有序
????????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);
????}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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
評(píng)論
共有 條評(píng)論