bcrypt 可能的密码组合数

bcrypt number of possibile password combination

我想了解 bcrypt 的幕后工作原理。例如,如果我创建一个哈希密码,例如 "hello",我收到:

y$wsoPmf7KXqGPWke9io0YbOf2Vln61awWwpCS./kGH5.rVE8Trbc6q

所以,每次我对另一个 "hello" 进行哈希处理时,我都会收到另一个 crypt 密码,我认为 bcrypt 中可能的密码组合的数量取决于轮数,例如 12(在我的例子中)。

一轮12,"hello"的组合到底有多少种?我该如何计算?

Bcrypt 包括一个 128 位(16 字节)的盐,以模块化 crypt 格式编码为散列的前 22 个字符。在您的示例中,盐是 wsoPmf7KXqGPWke9io0YbO.

每个盐都有不同的密码 -> 哈希值,因此对于给定的成本参数,每个密码有 2^128 或大约 10^38 种可能的哈希值。如果更改成本参数,将生成一组不同的 10^38 种可能的哈希值(但成本参数的大小不会增加或减少可能的哈希值数量)。