HMAC 经常实现错误吗?

Is HMAC frequently implemented wrong?

我遇到的一些 REST 服务要求我下载一个 API 密钥或某种共享密钥,然后简单地将其与 headers 一起传递。

但是当我试图在 Google 搜索中描述这种设计模式时,我得到的只是 "HMAC" 这似乎更复杂; HMAC 旨在从不将共享密钥直接发送到服务器,并涉及将密钥与其他数据进行散列。

所以我在看什么?有名字吗?

您是正确的,以您描述的方式使用 API 密钥不是 HMAC。它通常被称为 "API Key Authentication" 或类似的名称。 API 密钥身份验证只是一个密码,通常作为 header 与每个请求一起传递。

这仅在与 HTTPS 配对时是安全的,因此观看流量的任何人都不能简单地读出 API 密钥。