我刚开始尝试使用RESTful API。
通常,存在两种类型:开放API和私有AP,您需要API密钥。究竟是什么API密钥用于?他们也可以确保数据加密吗?我很困惑,因为一些API提供商有两组密钥,一组是公共密钥,另一组是私有密钥,也许也指向数据和内容安全性?
总而言之,如果我使用RESTful API及其密钥查询数据库,我从数据库收到的响应将是安全/加密的,还是API密钥仅用于验证请求源?
答案 0 :(得分:0)
API密钥通常用于标识和身份验证,而不是加密。客户端将它们包含在请求中,因此服务器可以确定哪个客户端正在发出请求,并确信该呼叫确实来自该客户端。
(有时API密钥用于识别,有时不用。可以将API密钥设置为密码,因此客户端也需要使用用户名或客户端ID来识别自己。但趋势是不要打扰这个,只需发出足够复杂的API密钥,它们在所有用户中都是唯一的。)
在最简单的情况下,服务器只需查找API密钥并获取用户ID。这通常发生在服务器的请求 - 响应周期的开始,在此之后,客户端ID可用于任何进一步的检查和记录,因此API密钥不再相关。
就数据加密而言,目前尚不清楚为什么要在服务器端执行此操作。加密密码很常见,加密API密钥也是一种很好的做法,但这些只是凭证。您通常不会加密服务器上的实际数据。它可以在极端情况下完成,作为“主机验证托管”的一种方式,客户端不希望信任服务器及其数据,但这严重限制了服务器的功能。