想象一下客户端应用程序正在向后端服务器发送密码的情况,以便服务器可以在与存储的密码变体进行比较时验证用户输入了正确的密码。
传输机制为HTTPS
,服务器提供HSTS
&服务器在SSL实验室测试中评分A +时,首选HPKP
用户代理和强加密密码。尽管如此,我们可能希望避免从用户代理向服务器发送原始用户提供的密码。相反,也许我们会在客户端上经过多轮SHA-256发送哈希值。
在服务器端,为了存储密码,我们使用了大量轮次的bcrypt。
从加密的角度来看,对于已经sha-256哈希值而不是直接在纯文本密码上执行bcrypt是否有任何不利之处?使用哈希时输入文本的固定长度特性是否会破坏算法的优势。
编辑:我不是在询问计算,存储,发送或比较值所需的内存,CPU,存储要求或挂钟时间等性能。我真的很感兴趣的是,在公布完整的存储值列表的情况下,在应用bcrypt之前应用哈希是否会削弱bcrypt的强度。