
Хорошо, я скачалвсе хеши SHA-1 из Have I Been Pwned, экспортировал все из своего менеджера паролей и обработал это в файл с одним паролем на строку. Как мне эффективно сопоставить эти файлы?
решение1
Предпосылки
7z
, который должен быть впакет "p7zip".sha1sum
иshred
, который должен быть в пакете "coreutils".grep
из пакета "grep".
Процесс
Создайте файл с уникальными хешами паролей в верхнем регистре, а также файл с паролями и соответствующими им хешами:
sort -u passwords.txt | while read -r password do hash="$(printf '%s' "$password" | \ sha1sum | \ cut -d' ' -f1 | \ tr 'a-f' 'A-F')" printf '%s\n' "$hash" >> hashes.txt printf '%s\t%s\n' "$hash" "$password" >> passwords-with-hashes.txt done
Сопоставьте ваши хэши со всеми записями в загруженном файле:
7z e -so pwned-passwords-sha1-ordered-by-hash-v*.7z | \ cut -c 1-40 | \ grep -Fxf hashes.txt | \ tee matches.txt
Наберитесь терпения — на настольном компьютере с SSD это заняло около 20 минут!
Показать пароли, связанные с совпадениями:
grep -Ff matches.txt passwords-with-hashes.txt | cut -f2
Надежно удалите созданные вами файлы:
shred --remove hashes.txt matches.txt passwords.txt passwords-with-hashes.txt