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
またはを使用して最初のkeepassxc-cli
ものはstdin入力としてGUIを開き、2番目は「パスワード入力」の一般的な形式で入力する必要があります)。しかし、繰り返しの方法は理解できません。 Output.txtには5832行があり、手動無差別代入攻撃は不可能です。
Output.txtの内容や1行の出力をkeepassxcに渡す方法は?
答え1
たぶん、次のようなものがあります。
while read p; do
echo "$p" | keepassxc --pw-stdin;
done <output.txt
keepassxcが間違った入力を受けたときにどのように動作するかわかりません。 5831エラーウィンドウを開く準備ができました。