公钥和私钥API

时间:2012-06-11 01:25:18

标签: api hash hmac api-key

我正在开发一个需要此类身份验证的API系统。用户将发送一个HTTP请求及其id,数据和散列(用私钥散列的数据),然后在服务器中检查散列是否与此处的相同过程匹配。
是否必须执行?
而且我将使用客户端的id作为公钥,但是生成私钥的最佳方法是什么,id的sha256,randon数?

2 个答案:

答案 0 :(得分:1)

这不是私钥/公钥加密。在这样的系统中,客户端将加密整个数据,然后您将使用您的私钥解密它。你永远不会把你的私钥交给客户。

您正在做的是请求签名。你给出一个“秘密”(你称之为“私钥”),然后他们用它来生成一个哈希。然后,您可以检查服务器上的哈希,因为您也知道密码。

在这种系统中不会有公钥。您通常使用会话密钥或令牌来标识客户端,因此客户端需要首先进行身份验证(这意味着您需要一些身份验证方法)。从本质上讲,您要实现的是OAuth。也许看看图书馆,看看你是否可以直接使用它 - http://oauth.net/documentation/getting-started/

答案 1 :(得分:1)

检查amazon s3正在为身份验证做些什么可能是一个好的开始

基本上他们做的和你提出的一样,他们使用RFC 2104HMAC-SHA1进行散列。实施取决于您选择的语言。