The latest password list as of writing is 23GB uncompressed, so a naive text search can be slow and memory-intensive.
This program mmaps the file and binary searches over it.
This approach is fast and has minor memory usage.
go get github.com/jbowens/checkpassword
go install github.com/jbowens/checkpassword
checkpassword -file ~/pwned-passwords-sha1-ordered-by-hash-v4.txt "password"
Command checkpassword checks passwords against a SHA1
password list.
It was built to be used with the password list from
https://haveibeenpwned.com/Passwords. As such, it
expects the password list to consist of alphabetized,
capitalized, hex-encoded SHA1 hashes. It expects
each hash to be on its own line with a colon
delineating the hash from the number of occurrences
in breaches.