跨平台应用开发进阶(三十二) :AK SK鉴权原理简介_aksk鉴权(1)

SK: Secret Access Key,是⽤户⽤于加密认证字符串和⽤来验证认证字符串的密钥,其中SK必须保密。

通过使⽤Access Key Id / Secret Access Key加密的⽅法来验证某个请求的发送者⾝份。

客户端在调用服务端接口的时候,会带上ak以及signature(使用sk对内容进行加密后得出的签名)进行请求,在服务端接收到这个请求的时候,首先会根据ak去数据库里面去找到对应的sk,然后使用sk对请求内容进行加密得到一个签名,然后对比客户端传过来的签名和服务端计算的出来的签名是否一致,如果一致则代表身份认证通过,反之则不通过。

二、AK/SK使⽤机制

云主机接收到⽤户的请求后,系统将使⽤AK对应的相同的SK和同样的认证机制⽣成认证字符串,并与⽤户请求中包含的认证字符串进⾏⽐对。如果认证字符串相同,系统认为⽤户拥有指定的操作权限,并执⾏相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。

三、流程

  1. 判断⽤户请求中是否包含Authorization认证字符串。如果包含认证字符串,则执⾏下⼀步操作。
  2. 基于HTTP请求信息,使⽤相同的算法,⽣成Signature字符串。
  3. 使⽤服务器⽣成的Signature字符串与⽤户提供的字符串进⾏⽐对,如果内容不⼀致,则认为认证失败,拒绝该请求;如果内容⼀致,则表⽰认证成功,系统将按照⽤户的请求内容进⾏操作。

客户端

1. 构建http请求(包含 access key);

2. 使⽤请求内容和使⽤secret access key计算的签名(signature);

3. 发送请求到服务端。

服务端

1. 根据发送的access key 查找数据库得到对应的secret-key;

2. 使⽤同样的算法将请求内容和 secret-key ⼀起计算签名(signature),与客户端步骤2相同;

3. 对⽐⽤户发送的签名和服务端计算的签名,两者相同则认证通过,否则失败。

四、应用示例

设计ak/sk的请求参数

  • platform_type:标明请求方是谁,即该例子中的ak
  • time:请求时间,时间戳,将会被对应的sk配合加密算法进行加密,得到一个signature签名。
  • sign:签名,使用sk配合对应的加密算法后进行加密得到的签名。

当发送请求时,请求端会带上这几个参数去请求接口,如请求

https:///xxx.com/students?platform\_type=school&time=1640494526&sign=54acba6857b284a8a481ed5913edd34d994721cc584305ff02c81bb3ced17212



**web浏览器中的javascript**

*   客户端javascript
*   在html里嵌入javascript
*   javascript程序的执行
*   兼容性和互用性
*   可访问性
*   安全性
*   客户端框架
*   **[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://bbs.csdn.net/topics/618166371)**

![](https://img-blog.csdnimg.cn/img_convert/ed2c4f9602fb053965a21c047d1291e6.png)  

**window对象**

*   计时器

*   浏览器定位和导航

*   浏览历史

*   浏览器和屏幕信息

*   对话框

*   错误处理

*   作为window对象属性的文档元素

![](https://img-blog.csdnimg.cn/img_convert/81adbbfdefca6b401d7dc4e6acd9207d.png)
  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
海康威视的aksk是用于API鉴权的,用于保证API请求的安全性。具体的认证流程如下: 1. 在海康威视开发者平台注册账号,创建应用并获取对应的aksk。 2. 构造请求,将ak和请求参数组合成一个字符串,然后使用sk对该字符串进行HMAC-SHA256加密,得到一个签名字符串。 3. 将签名字符串添加到请求头中,请求海康威视API。 4. 服务器接收到请求后,会从请求头中获取签名字符串和ak,然后使用该ak在后台获取对应的sk,并且使用该sk对请求参数进行HMAC-SHA256加密,得到一个签名字符串。 5. 服务器将该签名字符串和请求头中的签名字符串进行比对,如果一致,则认为请求合法,返回API响应结果;否则认为请求不合法,返回错误响应。 需要注意的是,aksk是非常重要的信息,开发者应该妥善保管,避免泄露。在Python中,可以使用hmac库实现海康威视aksk的HMAC-SHA256摘要认证。具体的代码如下: ```python import hmac import hashlib ak = "your ak" # 填写你的ak sk = "your sk" # 填写你的sk params = "your params" # 填写你的请求参数,注意需要按照字典序排序并且进行urlencode编码 message = ak + params digest = hmac.new(sk.encode(), message.encode(), hashlib.sha256).hexdigest().upper() # 将digest添加到请求头中,然后发起API请求即可 ``` 其中,aksk是你在海康威视开发者平台获取的认证信息,params是你的请求参数。需要注意的是,params需要按照字典序排序,并且进行urlencode编码,否则认证会失败。最后将digest添加到请求头中,然后发起API请求即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值