bcrypt.compare是否容易受到定时攻击?

在Node.js web开发中,我将其看作是使用bcrypt进行散列和比较密码的常见做法。 bcrypt.compare是否容易受到定时攻击 ?

这取决于你正在使用的bcrypt模块的实现。 bcrypt本身只是一个重要的派生函数 ,并不表示应该如何进行比较。 从理论上讲,一个bcrypt.compare函数比较了哈希与天真的string===比较可能泄漏有关哈希的信息。

但是,假设您指的是使用最广泛的Node.js的bcrypt模块,则bcrypt.compare函数使用时间安全的bcrypt.compare函数来实现。 这个函数总是比较散列之前的所有字符,从而防止它揭示比较失败的地方/时间。