首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么要使用API密钥和密钥?

为什么要使用API密钥和密钥?
EN

Stack Overflow用户
提问于 2012-07-19 17:38:38
回答 5查看 56.4K关注 0票数 104

我遇到过许多API,它们同时为用户提供了一个密钥和一个密钥。但我的问题是:两者之间的区别是什么?

在我看来,一把钥匙就足够了。假设我有一个密钥,只有我和服务器知道它。我用这个密钥创建了一个HMAC散列,并执行了一个API调用。在服务器上,我们再次创建HMAC散列,并将其与发送的散列进行比较。如果相同,则该调用已通过身份验证。

那么为什么要使用两个密钥呢?

API:,或者是用来查找密钥的?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-07-19 17:47:46

密钥加密依赖于使用相同的密钥对消息进行编码,然后再对消息进行解码。因此,只有那些知道“秘密”的人才能阅读这条消息。

RSA安全性基于2个匹配密钥。每个用户都有一个公钥,每个人都可以(应该)知道。还有一个只有用户才应该知道的私钥。用公钥加密的消息只能用私钥解密,反之亦然。

因此,如果我想向您发送只有您可以读取的消息,我(从网络中)获取您的公钥,用该密钥对消息进行加密,您是唯一可以解密它的人。

或者,如果我想向您证明我发送了一条消息,我可以用我的私钥加密该消息,告诉您它是如何加密的(以开放文本或其他消息的形式)。然后你可以用我的公钥解密消息,如果它变得可读,你就知道它来自我。

这种形式的加密是计算机密集型的,所以有时所做的是,使用RSA技术加密一次性的“秘密密钥”,然后用秘密密钥加密消息的其余部分,然后以第二种方式加密我的签名。然后逆转这个过程,所以如果消息和签名是可读的,那么只有您可以读取它,并且您可以确保消息是我发送的。

您可以访问此链接以获取更详细的解释。

How do API Keys and Secret Keys work?

票数 52
EN

Stack Overflow用户

发布于 2012-07-19 21:30:38

你需要两个不同的密钥,一个告诉他们你是谁,另一个证明你就是你所说的。

"key“是您的用户ID,"secret”是您的密码。他们只是使用"key“和"secret”这两个术语,因为这就是他们实现它的方式。

票数 66
EN

Stack Overflow用户

发布于 2017-12-31 07:27:04

答案很简单,如果我没理解错的话...

如果您使用您的API密钥进行加密,服务如何知道谁在联系他们?他们将如何解密该消息?

您使用API密钥来声明您是谁,这是您以纯文本发送的内容。您的密钥不会发送给任何人。您只需将其用于加密。然后你发送加密的消息。您不发送用于加密的密钥,这将违背其目的。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11557985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档