以下是关于Web应用程序登录方案的翻译:
我得到了一个Web应用程序登录方案。 数据库中将包含两个盐和hmac(hmac(密码, 盐1), 盐2)。
当用户进入登录页面时,他会得到盐1。 如果他已经启用了JavaScript,它会发送hmac(密码, 盐1),而不是明文密码。 如果没有启用JavaScript,则会发送明文密码。
因此,在服务器端接收到登录请求时,我们首先检查发送的内容(passwordSent)是否与hmac(passwordSent, salt2)匹配。如果不行,我们会尝试hmac(hmac(passwordSent, salt1), salt2)。
获取数据库访问权限的人不应该能够使用密码哈希值进行登录,并且我认为(但我可能错了)多个hmac并不会降低哈希防护性能。 有没有什么好的加密专家发现我可能犯的明显错误?