2012-06-11 263 views
0

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

回答

1

检查出什么amazon s3是做认证可能是一个良好的开端

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

+0

哪种方法最适合您生成私钥?谢谢 – Mario

+2

@Mario检查这个产生随机的东西https://www.grc.com/passwords.htm – xvatar

+0

谢谢你的链接 – Mario

1

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

你在做什么是请求签名。你给一个“秘密”(你称之为“私钥”),然后他们用这个来产生一个散列。你可以在服务器上检查哈希,因为你也知道秘密。

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