【发布时间】:2015-05-18 09:06:32
【问题描述】:
根据这个参考source code,函数SlowEquals
private static bool SlowEquals(byte[] a, byte[] b)
{
uint diff = (uint)a.Length ^ (uint)b.Length;
for (int i = 0; i < a.Length && i < b.Length; i++)
diff |= (uint)(a[i] ^ b[i]);
return diff == 0;
}
我明白作者的意思是使用 xor & 或将比较时间设为
一致,但现在我对BCrypt的密码感到很困惑
验证,是否需要做同样的事情来避免定时攻击?
或者 bcrypt 在散列后已经调整为一致?
所以它只是用“==”验证结果?
关于此的任何想法或文档/文章?谢谢。
【问题讨论】:
标签: c# pbkdf2 rfc2898 bcrypt.net