Web services 密码验证需要多长时间?

Web services 密码验证需要多长时间?,web-services,authentication,restful-authentication,password-hash,Web Services,Authentication,Restful Authentication,Password Hash,我知道在数据库中存储密码时,最好使用慢散列函数,如bcrypt、scrypt或argon2。我读过的大多数关于选择参数(如时间和内存成本)的文档都建议设置尽可能高的值,以便在攻击者访问您的数据库时阻止密码破解尝试。我的问题是,在对web应用程序中的用户进行身份验证时,什么样的资源消耗是可以接受的?我知道这个问题的答案会因执行身份验证的服务器的规格、发生身份验证的频率等因素而有所不同,但我想得到一些关于什么是合理的,什么是不合理的一般建议。密码验证的时间是否过长?如果我的服务器有8GB内存,使用1

我知道在数据库中存储密码时,最好使用慢散列函数,如bcrypt、scrypt或argon2。我读过的大多数关于选择参数(如时间和内存成本)的文档都建议设置尽可能高的值,以便在攻击者访问您的数据库时阻止密码破解尝试。我的问题是,在对web应用程序中的用户进行身份验证时,什么样的资源消耗是可以接受的?我知道这个问题的答案会因执行身份验证的服务器的规格、发生身份验证的频率等因素而有所不同,但我想得到一些关于什么是合理的,什么是不合理的一般建议。密码验证的时间是否过长?如果我的服务器有8GB内存,使用1GB的哈希内存成本是否过高?我希望所讨论的应用程序只会偶尔执行密码身份验证,因为它对大多数请求使用基于令牌的身份验证

密码验证的时间是否过长

如果你的用户能容忍的话,这是不可能的,但我认为几百毫秒就足够了。请看一个更具体的问题

如果我的服务器有8GB内存,使用1GB的哈希内存成本是否过高


我不希望您的密码哈希策略需要那么多内存。哈希通常是CPU/计算绑定的任务。

谢谢您的评论。Argon2是一个内存硬函数,允许您在时间开销和并行性之外指定内存开销参数,这就是为什么我想知道我可以合理地为哈希分配多少内存。啊,如果您选择了任意数量的内存来使用,那么有多少内存太多将取决于其他因素,例如在~peak~负载下可以保留多少内存。1GB似乎太多了。看起来Argon2的CLI默认值是4096KiB。