跳转到内容
主菜单
主菜单
移至侧栏
隐藏
规范/协议
协议
算法
JVM
多线程/并发
存储
AI
深度学习
工具箱
最近更改
文章分类
全部文章
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签名算法
。
搜索
搜索
查看“︁Java:URL签名算法”︁的源代码
添加话题