接口调用·访问控制_数字签名计算方法

一、用户签名认证

对于每一次HTTP或者HTTPS协议请求,我们会根据访问中的签名信息验证访问请求者身份。具体由使用AccessKey和SecretKey对称加密验证实现。
API中的AccessKey和SecretKey 是通过用户的账户设置面板来生成的。
AccessKey是访问者身份,SecretKey是加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密谨防泄露。

 二、在URL中构造签名

1. 构造规范化请求字符串


- 排序参数。排序规则以首字母顺序排序,参数不包括signature参数。
- 编码参数。使用UTF-8字符集按照RFC3986规则对请求参数和参数取值进行编码。
- 使用等号(=)连接编码对应的请求参数和参数取值。
- 使用于号(&)连接编码后其他的请求参数,注意参数排序与上方一致。

2. 构造签名字符串


1)构造待签名字符串dataToSign。HTTPMethod(发送请求的HTTP方法) + "&%2F&" + 上述构造的规范化请求字符串。比如: String dataToSign ="GET&%2F&accessKey%3DEIs1Fp4N%26signatureMethod%3D1.0";
2)计算dataToSign的HMAC-SHA1值,并用Java Base64编码转为字符串。 计算方法:String signature = Base64(HMAC-SHA1(secretKey, UTF-8-Encoding-Of(dataToSign)));
3)添加根据RFC3986规则编码后的参数signature到规范化请求字符串中。
**具体实现方法可以参考**:https://help.aliyun.com/document_

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT老瓜哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值