4

许多 Web REST API 为您提供密钥和秘密。当您向 API 发出请求时,您必须同时返回它们。这个有什么用?其中一个还不够吗?

  • 这不是公钥/私钥交换:你给他们两个,对吧?

  • 您也不会像在许多散列算法中那样使用秘密对您的内容进行散列并计算其他值:您总是返回相同的密钥和秘密。

我唯一能找到的是如何使用密钥和秘密进行验证的答案?这表示服务器可以使用密钥廉价地散列您的域(或者可能是用户名或其他内容)并检查它是否与密钥匹配。真的有这么用吗?

(奖励将是这种机制的名称。它似乎与我在 stackoverflow/wikipedia 上找到的关于加密机制的内容不匹配。)


更新:答案和一些评论告诉我,在请求中同时传递密钥和相应的密钥是一个坏主意。确实在实践中发生,但它仍然是一个坏主意。

4

1 回答 1

2

你会说你提到HMAC Authentication
key是你的帐户名,它不会直接用于任何身份验证。将secret严格离线共享,并且永远不会发回。在 HMAC 身份验证中,您发送回一个签名,该签名源自服务器和客户端之间商定的一组参数,当然这secret是其中的一部分。

于 2012-09-25T17:16:20.310 回答