2

我目前编写了一个 API,它使用基于 TLS 的 HTTP Basic 进行身份验证,我对此非常满意。

现在我提高了密码加密的值(如长度、迭代等),以获得更真实的场景。不幸的是,这使得 API 访问变得非常缓慢,因为我必须一遍又一遍地重新哈希 HTTP Basic 凭据。

克服这个问题的最简单方法是什么(当然除了会话之外)?

4

1 回答 1

3

pbkdf2 并不意味着被重复调用,事实上,阻止它的速度很慢。这通常与一些基于会话或令牌的身份验证和 SSL/TLS 结合使用。

如果您的缓慢是由于 pbkdf2 造成的,并且您不想进行会话或任何类似的基于令牌的身份验证,那么除了放弃或降低 pbkdf2 的迭代之外,您无能为力。

不过,您可能会考虑放弃 HTTP 基本身份验证,但保留 TLS,并进行自己的身份验证,然后保持连接打开以接收其他请求。当然,这也将由客户来支持。

另一种解决方案是添加更多硬件来分散负载。由于散列是在 Web 服务器而不是数据库服务器上完成的,因此您可以添加更多的 Web 服务器、Web 服务器 CPU 等,并平衡负载。

于 2013-10-14T20:24:00.000 回答