我遇到过许多API,它们同时为用户提供了一个密钥和一个密钥。但我的问题是:两者之间的区别是什么?
在我看来,一把钥匙就足够了。假设我有一个密钥,只有我和服务器知道它。我用这个密钥创建了一个HMAC散列,并执行了一个API调用。在服务器上,我们再次创建HMAC散列,并将其与发送的散列进行比较。如果相同,则该调用已通过身份验证。
那么为什么要使用两个密钥呢?
API:,或者是用来查找密钥的?
发布于 2012-07-19 17:47:46
密钥加密依赖于使用相同的密钥对消息进行编码,然后再对消息进行解码。因此,只有那些知道“秘密”的人才能阅读这条消息。
RSA安全性基于2个匹配密钥。每个用户都有一个公钥,每个人都可以(应该)知道。还有一个只有用户才应该知道的私钥。用公钥加密的消息只能用私钥解密,反之亦然。
因此,如果我想向您发送只有您可以读取的消息,我(从网络中)获取您的公钥,用该密钥对消息进行加密,您是唯一可以解密它的人。
或者,如果我想向您证明我发送了一条消息,我可以用我的私钥加密该消息,告诉您它是如何加密的(以开放文本或其他消息的形式)。然后你可以用我的公钥解密消息,如果它变得可读,你就知道它来自我。
这种形式的加密是计算机密集型的,所以有时所做的是,使用RSA技术加密一次性的“秘密密钥”,然后用秘密密钥加密消息的其余部分,然后以第二种方式加密我的签名。然后逆转这个过程,所以如果消息和签名是可读的,那么只有您可以读取它,并且您可以确保消息是我发送的。
或
您可以访问此链接以获取更详细的解释。
发布于 2012-07-19 21:30:38
你需要两个不同的密钥,一个告诉他们你是谁,另一个证明你就是你所说的。
"key“是您的用户ID,"secret”是您的密码。他们只是使用"key“和"secret”这两个术语,因为这就是他们实现它的方式。
发布于 2017-12-31 07:27:04
答案很简单,如果我没理解错的话...
如果您使用您的API密钥进行加密,服务如何知道谁在联系他们?他们将如何解密该消息?
您使用API密钥来声明您是谁,这是您以纯文本发送的内容。您的密钥不会发送给任何人。您只需将其用于加密。然后你发送加密的消息。您不发送用于加密的密钥,这将违背其目的。
https://stackoverflow.com/questions/11557985
复制相似问题