如何检查是否存在 bcrypt 哈希

How to check whether a bcrypt hash is present

很简单,我希望将 bcrpyt 正则表达式合并到 egrep 命令中,以查看每行上是否存在 bcrypt 哈希。

我目前使用 MD5 哈希值很容易做到这一点:

egrep -wa "[a-f0-9]{32}" DB.txt >> DB_md5.txt
egrep -v -a "[a-f0-9]{32}" DB.txt >> DB_nomd5.txt

我研究并发现:

连同解决方案是:$2[ayb]$.{56}

我正在努力将它包含在我的 egrep 命令中。例如:

egrep -wa "$2[ayb]$.{56}" DB.txt >> DB_bcrypt.txt

以上命令无效。非常感谢任何帮助。

注意:bcrypt 散列的位置并不重要,它可以在线上的任何位置,因此我从下面 link 中找到的正则表达式解决方案中删除了 ^ 和 $ .

您可以使用

grep -Ea '$2[ayb]$.{56}' DB.txt >> DB_bcrypt.txt

参见online demo

注释

  • -E - POSIX ERE 语法启用,现在 {56} 范围量词中的 {} 不需要转义(您的正则表达式已解析使用 POSIX BRE 引擎,你需要 \{56\} 匹配一个模式 56 次)
  • 正则表达式周围的单引号确保 $ 被解析为 $ 正则表达式转义,否则 "$" 只是 dentotes 一个 $ 特殊字符,即字符串结尾。