针对文件的 phpass 哈希列表

Grepping list of phpass hashes against a file

我正在尝试对包含 data:string

的文件进行 grep 多个看起来像这样的字符串(有几百个)

示例字符串:(未提供敏感数据,已修改)。

$Ha...DcuCqC/rMVmfiFNm2rqhK5vFW1  
$Hn...AHZAV.sTefg8ap8qI8U4A5fY91  
$Ho...Bi6Z3E04x6ev1ZCz0hItSh2JJ/  
$Hw...CFva1ddp8IRBkgwww3COVLf/K1 

我一直在研究如何根据另一个文件对一个模式文件进行 grep,并遇到了以下命令

grep -f strings.txt datastring.txt > output.txt  
grep -Ff strings.txt datastring.txt > output.txt

但不幸的是,这些命令无法成功运行,并且只将少数结果打印到我的输出文件中。我认为这可能与 strings.txt 中包含的符号有关,但我不确定。任何 help/advice 都很好。

进一步提及,我在 Windows 上使用 Cygwin(如果相关的话)。

这是一个更新的例子:
strings.txt 包含以下内容:

$Ha...DcuCqC/rMVmfiFNm2rqhK5vFW1  
$Hn...AHZAV.sTefg8ap8qI8U4A5fY91  
$Ho...Bi6Z3E04x6ev1ZCz0hItSh2JJ/  
$Hw...CFva1ddp8IRBkgwww3COVLf/K1 

datastring.txt 包含以下内容:

$Ha...DcuCqC/rMVmfiFNm2rqhK5vFW1:53491  
$Hn...AHZAV.sTefg8ap8qI8U4A5fY91:03221  
$Ho...Bi6Z3E04x6ev1ZCz0hItSh2JJ/:20521  
$Hw...CFva1ddp8IRBkgwww3COVLf/K1:30142  

所以从技术上讲,所有行都应该包含在 OUTPUT 文件中,但只有这一行被输出:

$Hw...CFva1ddp8IRBkgwww3COVLf/K1:30142 

就是没看懂

您在其他地方显示了 cat -A strings.txt 的输出,其中包括 ^M 表示每行末尾的 CR(回车 return)字符:

这表明您的文件具有 Windows 行结尾 (CR LF) 而不是 grep 期望的 Unix 行结尾(仅 LF)。

您可以使用 dos2unix strings.txt 转换文件并使用 unix2dos strings.txt 转换回来。

或者,如果您的 Cygwin 环境中没有安装 dos2unix,您也可以使用 sed 来安装。

sed -i 's/\r$//' strings.txt    # dos2unix
sed -i 's/$/\r/' strings.txt    # unix2dos