我正在开发一个需要这种类型的身份验证的 API 系统。用户将发送一个带有其 id、数据和散列(使用私钥散列的数据)的 HTTP 请求,然后在服务器中检查散列是否与此处的相同过程匹配。
是否像实施必须的那样?
我将使用客户端的 id 作为公钥,但是生成随机数的私钥 sha256 的最佳方法是什么?
问问题
6492 次
2 回答
2
这不是私钥/公钥密码术。在这样的系统中,客户端将加密整个数据,然后您将使用您的私钥对其进行解密。你永远不会把你的私钥给客户。
您正在做的是请求签名。你给一个“秘密”(你称之为“私钥”),然后他们用它来生成一个散列。然后您可以检查服务器上的哈希,因为您也知道秘密。
在这种系统中不会有公钥。您通常使用会话密钥或令牌来识别客户端,因此客户端需要首先进行身份验证(这意味着您需要一些身份验证方法)。本质上,您要实现的是 OAuth。也许看看图书馆,看看你是否可以直接使用它 - http://oauth.net/documentation/getting-started/
于 2012-06-11T03:47:37.717 回答
1
checking out what amazon s3 is doing for the authentication might be a good start
basically they are doing the same thing as you proposed, and they use RFC 2104HMAC-SHA1 for the hashing. The implementation depends on your choice of languages.
于 2012-06-11T04:17:12.503 回答