AK/SK(aksk)鉴权原理简介

1、AK/SK 简介

AK:Access Key Id,用于标示用户;
SK:Secret Access Key,是用户用于加密认证字符串和用来验证认证字符串的密钥,其中SK必须保密.
通过使用Access Key Id / Secret Access Key加密的方法来验证某个请求的发送者身份。

2、 AK/SK使用机制

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

3、 流程

判断用户请求中是否包含Authorization认证字符串。如果包含认证字符串,则执行下一步操作。
基于HTTP请求信息,使用相同的算法,生成Signature字符串。
使用服务器生成的Signature字符串与用户提供的字符串进行比对,如果内容不一致,则认为认证失败,拒绝该请求;如果内容一致,则表示认证成功,系统将按照用户的请求内容进行操作。
原理:
  客户端:
    1. 构建http请求(包含 access key);
    2. 使用请求内容和 使用secret access key计算的签名(signature);
    3. 发送请求到服务端。

服务端:
    1. 根据发送的access key 查找数据库得到对应的secret-key;
    2. 使用同样的算法将请求内容和 secret-key一起计算签名(signature),与客户端步骤2相同;
    3. 对比用户发送的签名和服务端计算的签名,两者相同则认证通过,否则失败。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值