开发者社区> 问答> 正文

关于签名计算

已知access id和access key,怎么算出签名结果?我用的java sdk

展开
收起
chenjianjun0769 2012-06-06 18:33:48 13590 0
5 条回答
写回答
取消 提交回答
  • Re关于签名计算
    4.2    在 Head中包含签名
    用户可以在HTTP 请求中增加Authorization(授权)的Head来包含签名信
    息,表明这个消息已被授权。如果用户的请求中没有 Authentication 字段,则认
    为是匿名访问。
    验证码计算方法如下:
    "Authorization: OSS "   AccessId   ":"   base64(hmac-sha1(VERB   "\n"  
                          CONTENT-MD5   "\n"  
                          CONTENT-TYPE   "\n"  
                          DATE   "\n"  
                          CanonicalizedOSSHeaders
                          CanonicalizedResource))

      Content-Md5表示请求内容数据的 MD5值
      CONTENT-TYPE表示请求内容的类型
      DATE表示此次操作的时间,且必须为 HTTP1.1中支持的GMT 格式
      CanonicalizedOSSHeaders表示 http 中的object user meta 组合
      CanonicalizedResource 表示用户想要访问的 OSS资源
    其中,DATE和CanonicalizedResource 不能为空;如果请求中的DATE 时间
    和 OSS 服务器的时间差正负 15 分钟以上,OSS 服务器将拒绝该服务,并返回相
    应的错误码。

    构建CanonicalizedOSSHeaders 的方法:
    用户自定义的 OSS 文件头被称为 CanonicalizedOSSHeaders。它的构建方法
    如下:
    1)  将所有的 HTTP 请求头的名字转换成小写字母。如’X-OSS-Meta-Name: TaoBao’转换
    成’x-oss-meta-name: TaoBao’。
    2)  将上一步得到的所有 HTTP 请求头按照字典序进行升序排列。
    3)  如果有相同名字的请求头,则根据标准 RFC 2616, 4.2 章进行合并(两个值之间只用逗号分隔)。
    如有两个名为’x-oss-meta-name’的请求头,对应的值分别为’TaoBao’和’Alipay’,则合并后
    为:’x-oss-meta-name:TaoBao,Alipay’。
    4)  如果请求头内容里有多个连续的空格,则用一个空格代替之。
    5)  删除请求头和内容之间分隔符两端出现的任何空格。如’x-oss-meta-name:  TaoBao,Alipay’转换
    成:’x-oss-meta-name:TaoBao,Alipay’。
    6)  将所有的头和内容用’\n’分隔符分隔拼成最后的 CanonicalizedOSSHeader。



    例如:想签名以下信息:
    PUT /quotes/nelson HTTP/1.0
    Content-Md5: c8fdb181845a4ca6b8fec737b3581d76
    Content-Type: text/html
    Date: Thu, 17 Nov 2005 18:49:58 GMT
    X-OSS-Meta-Author: foo@bar.com
    X-OSS-Magic: abracadabra
    假如AccessID是: "44CF9590006BF252F707"
    AccessKey 是 "OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV",可用以下
    方法签名

    签名计算结果应该为”63mwfl zYIOG6k95yxbgMruQ6QI=”,
    2012-06-13 13:50:03
    赞同 展开评论 打赏
  • Re关于签名计算
    都白问。没人理。。。
    2012-06-13 00:29:43
    赞同 展开评论 打赏
  • 加旺旺群876041506,上面有SDK 的开发,问问他们吧。
    2012-06-08 11:24:45
    赞同 展开评论 打赏
  • 回1楼superzouzhy的帖子
    OSS_API并没有详细的签名计算,只是提供了一个RFC的链接。另外SDK上也没看见有关于签名计算的方法。我现在不用计算签名,直接用client.generatePresignedUrl生成的URL含有签名,但是却报403错误。Date的格式没问题、Access id和Access key也没问题,请问是什么原因?难道Access id是inactive的?

    -------------------------

    回3楼lei.zhuol的帖子
    他们经常不在线的。。。。
    2012-06-07 16:39:47
    赞同 展开评论 打赏
  • Re关于签名计算
    请签名计算, 看看OSS_API 开发文档, 文档中有对签名方法的详细说明.
    网站也有java的sdk, 可以参考代码.
    2012-06-07 10:48:17
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载