首页
随机
最近更改
特殊页面
社群首页
参数设置
关于WHY42
免责声明
WHY42
搜索
用户菜单
登录
欢迎来到Riguz的小站!这是一个私人wiki,用来记录一些我的笔记。
查看“︁Java:URL签名算法”︁的源代码
←
Java:URL签名算法
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
在设计一个REST风格的API的时候,参考现有的一些资料,设计了一个签名算法: <source lang="bash"> ${API_URL}/${VERSION}/[URL签名部分]&sign=${SIGNATURE} </source> 签名的过程为: *对客户端秘钥进行SHA512哈希算法,生成哈希值字符串。 *将URL签名部分的参数按照字典序升序排列并拼接到一起,再与上一步生成的哈希值拼接,生成一个新字符串 *对第2步生成的字符串求SHA1值作为签名字符串 <source lang="java"> public static String sign(List<String> params, String secretHash){ // 对参数列表进行字典排序 Collections.sort(params); String src = ""; for(String str:params) src += str; // 附加应用秘钥哈希值 src += secretHash; return sha1(src); } public static String signUrl(String url, String secretHash){ if(url == null || !url.contains("?")) throw new IllegalArgumentException("Trouble spliting url:" + url); String params = url.split("\\?")[1]; List<String> paramList = new ArrayList<String>(); for(String pair:params.split("\\&")) paramList.add(pair); return url + "&sign=" + sign(paramList, secretHash); } </source> [[Category:Programe]]
返回
Java:URL签名算法
。