许多Web REST API为您提供密钥和秘密。当您向API发出请求时,您必须将它们返回。有什么用?他们中的其中一个不够吗?
这不是公钥/私钥交换:你给他们两个,对吧?
您也没有使用秘密散列内容并计算其他值,就像在许多散列算法中一样:您总是给予相同的密钥和秘密。
我唯一能找到的是对How to use a key and secret for verification?的回答,即服务器可以用你的秘密便宜地哈希你的域(或者可能是用户名或其他东西)并检查它是否与密钥匹配。这真的有用吗?
(奖金将是这个机制的名称。它似乎与我在stackoverflow /维基百科上找到的关于加密机制的内容不相符。)
更新:答案和几条评论告诉我, 一个坏主意是在请求中传递密钥和相应的密钥。它确实在实践中发生,但它仍然是一个坏主意。
答案 0 :(得分:2)
您会谈到HMAC Authentication
您提到的key
类似于您的帐户名称,它不会直接用于任何身份验证。 secret
将严格脱机共享,永不发回。在HMAC身份验证中,您发回一个签名,该签名派生自服务器和客户端之间商定的一组参数,当然secret
是其中的一部分。