我已经实现了一个 web 服务身份验证,它的工作原理与 amazon s3 几乎相同。
身份验证是无会话的。它是这样工作的:
- 在每个请求中发送一个
Date
HTTP Header - 发送一个 HMAC_SHA1 的 secretKey+date-header+some-parts-of-the-body 的内容(伪代码
hmac_sha1(secretKey+dateHeader+substr(body,0,100))
:) - 后端也知道 secretKey(20 个字符的随机密钥)。
- 后端也通过相同的 HMAC_SHA1 检查请求,如果值相等,则请求被“证明”并将被执行。
所以。我认为这几乎是亚马逊所做的。
但是不做对称(HMAC_SHA1)而不是做“请求的部分”的非对称加密(RSA)的想法呢?
我想避免在我的后端使用 secretKey。最好只将公钥放在后端。
- 你认为这是个好主意吗?
- 它会让系统“更强大”吗?
- 使用 RSA 加密的最大尺寸是多少?1000 字节?
谢谢