我忘记了 Keepassxc 数据库(带有密钥文件的 .kdbx)的部分密码。密码由 20 个符号组成,其中 17 个符号是已知的。我使用我认为在密码的未知部分中使用的字符(它们被放入 charlist.txt 中)和以下小行生成了所有可能组合的列表:
for i in $(cat charlist.txt); do
for j in $(cat charlist.txt); do
for k in $(cat charlist); do
echo $a$i$j$k
done
done
done > output.txt
Keepassxc 允许我从 stdin 读取密码(使用keepassxc --pw-stdin
或 with keepassxc-cli
;第一个使用 stdin 输入打开 GUI,第二个要求以通常的形式“输入密码”输入)。然而,我无法理解迭代的方式。 output.txt中有5832行,这使得手动暴力破解不可行。
如何将output.txt 的内容或单行输出传递给keepassxc?
答案1
也许是这样的:
while read p; do
echo "$p" | keepassxc --pw-stdin;
done <output.txt
我不知道 keepassxc 在收到错误输入时的行为。也许要为 5831 打开错误窗口做好准备。