Key_sap access key什么意思

签名参数sign生成说明
这里以如下请求为例,来说明sign的生成步骤:
/api/cos_create_bucket?accessId=9999&bucketId=abc&acl=0&time=&sign=XNibuRA%2FLx3vjq1FFiv4AqzygOA%3D
源串是由2部分内容用“&”拼接起来并进行UrlEncode编码:urlencode(api_name&a=x&b=y&...)
(1) 将除“sig”外的所有参数按key进行字典升序排列,将api_name和排序后的参数(key=value)用&拼接起来。
/api/cos_create_bucket&accessId=9999&acl=0&bucketId=abc&time=
(2)将上面生成的字符串进行URL编码。
请开发者关注:,否则容易导致后面签名不能通过验证。
%2Fapi%2Fcos_create_bucket%26accessId%3D9999%26acl%3D0%26bucketId%3Dabc%26time%3D
(1)获取accessKey。
在“文件操作”页面,点击“获取accessKey”按钮,即可查看到accessId和accessKey。
(2)使用HMAC-SHA1加密算法,使用 accessKey 对 Step1 中得到的源串加密。
(注:一般程序语言中会内置HMAC-SHA1加密算法的函数,例如PHP5.1.2之后的版本可直接调用hash_hmac函数。)
(3)然后将加密后的字符串进行Base64编码,得到的签名值结果如下:
(注:一般程序语言中会内置Base64编码函数,例如PHP中可直接调用 base64_encode() 函数。)
XNibuRA/Lx3vjq1FFiv4AqzygOA=
(4)由于生成的签名中可能包含“=”,因此需要再进行一次URL编码,得到的签名值结果如下:
XNibuRA%2FLx3vjq1FFiv4AqzygOA%3D
下载文件时,请求中没有api_name,因此在生成签名时,不需要加入api_name。
例如,进行URL编码前,字符串如下即可:
accessId=9999&bucket=abc&path=/dir1/test.jpg&time=
URL编码规则:
签名验证时,要求对字符串中除了“-”、“_”、“.”之外的所有非字母数字字符都替换成百分号(%)后跟两位十六进制数。
十六进制数中字母必须为大写。
注意事项:
1. 某些系统方法,例如.NET系统方法HttpUtility.UrlEncode会将‘=’编码成‘%3d’,而不是%3D,导致加密签名通不过验证,请开发者注意检查。
2.Java 1.3和早期版本中,调用java.net.URLEncoder下的方法进行URL编码时,某些特殊字符并不会被编码,例如星号(*)。
由于URL编码规则中规定了星号(*)必须编码,因此在请求字符串中含星号(*)的情况下如果使用了上述方法,会导致生成的签名不能通过验证。
因此,如果参数值中含有* ,在使用类java.net.URLEncoder下的方法进行编码后,需开发人员手动将星号字符“*”替换为“%2A”,否则将导致加密签名一直通不过验证,请开发者注意检查。
3. 某些语言的urlencode方法会把“空格”编码为“+”,实际上应该编码为“%20”。这也将生成错误的签名,导致签名通不过验证。
请开发者注意检查,手动将“+”替换为“%20”。在PHP中,推荐用rawurlencode方法进行URL编码。扫二维码下载作业帮
1.75亿学生的选择
下载作业帮安装包
扫二维码下载作业帮
1.75亿学生的选择
Key violation什么意思
萌神87WP96
扫二维码下载作业帮
1.75亿学生的选择
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 七牛access key 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信