algorithm - 由 Mashery 实现的 API 签名认证是如何工作的?

标签 algorithm api authentication md5 mashery

Mashery 允许通过数字签名进行身份验证,如下所示:

  • 首先,连接以下组件:
    • API key
    • 共享 secret
    • UNIX 时间戳
  • 然后,创建连接字符串的 MD5 哈希值。

文档指出 unix 时间戳只需要 +/- 5 分钟的精度。详情:http://support.mashery.com/docs/read/mashery_api/20/Authentication .

假设这不是商业 secret ,执行这样的身份验证的算法是什么?

具体来说,unix 时间戳可以相差 5 分钟怎么可能?一种“蛮力”技术可能是为每个可能的时间戳值计算签名,直到找到匹配项(或不匹配项),但这对于验证频繁的 API 调用似乎并不实用。

最佳答案

是的,这似乎就是它的作用。您提供的文档链接指出,“Mashery 服务器上当前时间戳的任一侧都允许有五分钟的摆动,以允许合理的时钟漂移。”这意味着他们需要检查多达 600 个哈希值以查看提交的哈希值是否有效。 5 分钟是 300 秒。加上或减去 600 张支票。

我觉得很实用。 600 个 MD5 不需要做很多处理。事实上,现代密码验证器(比如使用 bcrypt 的东西)会执行更多的工作来验证密码。

关于algorithm - 由 Mashery 实现的 API 签名认证是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8042907/

相关文章:

algorithm - 图形计算器 : how to find the appropriate part of the graph to show

ios - Facebook API 和 iOS

api - 我是否应该信任使用 GET 方法进行用户身份验证的 API?

javascript - 有没有办法使用 Web 身份验证 API (WebAuthn) 获取 U2F 设备的稳定唯一标识符?

algorithm - 旋转 N 位字的高效排序

c# - 如何计算两个ip之间的主机数? C#

java - 为什么 Hibernate 发布了 JPA2 API 的新版本?

不使用客户端 ID 和 key 的 Azure AD Graph API 访问

algorithm - 计算最多 2 次交换后的不同排列

python - 使用图形 API 编写代码