/pwned

A collection of tools to convert pwned password files to searchable MD5 files, create indexes on them, and look up passwords in these files

Primary LanguageC++GNU General Public License v3.0GPL-3.0

#pwned tools

A collection of tools to convert pwned password files to searchable MD5 files, and look up passwords in these files

Brief description

Main components

pwned-lib: library with basic classes and functions to read and write hashes and their according counts

pwned-converted-cli: command-line interface to convert clear-text password files to binary files containing MD5 hashes and their according counts, sorted by hash

pwned-merger-cli: command-line interface to merge MD5:count files

pwned-lookup-cli: command-line interface to look up passwords in an MD5:count file

pwned-index: command-line interface to build an index of an MD5:count file

Auxiliary programs

test-set-extractor: command-line interface to extract a test set from a MD5:count file containing existent and non-existents hashes (used by benchmark)

benchmark: command-line interface to run performance tests with different search algorithms

be2le: command-line interface to convert a binary MD5:count file from Big-Endian to Little-Endian representation (no longer needed because the current release of pwned-converter-cli and pwneder-merger-cli already produces Little-Endian data)

Build for release

Go to the build directory:

cd build/Release

Start the build process:

cmake -DCMAKE_BUILD_TYPE=Release ../..
make

If compiling for processors that don't have a POPCNT instruction prepend NO_POPCNT=1 to the cmake command.

If cmake can't find OpenSSL, set the environment variable OPENSSL_ROOT_DIR to an appropriate value, e.g.:

export OPENSSL_ROOT_DIR=/usr/local/opt/openssl

Then call cmake again (see above).


Copyright © 2019 Oliver Lau, Heise Medien GmbH & Co. KG.

Dieses Programm ist freie Software. Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version.

Diese Software wurde zu Lehr- und Demonstrationszwecken programmiert und ist nicht für den produktiven Einsatz vorgesehen. Der Autor und die Heise Medien GmbH & Co. KG haften nicht für eventuelle Schäden, die aus der Nutzung der Software entstehen, und übernehmen keine Gewähr für ihre Vollständigkeit, Fehlerfreiheit und Eignung für einen bestimmten Zweck.


This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.