APGBFM(1)
π apgbfm manual, bestie π
β¨ NAME β¨
apgbfm is the APG Bloom filter management program, and apgbfm - APG Bloom filter management program is literally the whole vibe π
.
π SYNOPSIS π
apgbfm -f filter -n numofwords [-q] [-s]
apgbfm -f filter -d dictfile [-q] [-s]
apgbfm -f filter -a word [-q]
apgbfm -f filter -A dictfile [-q]
apgbfm -f filter -c word [-q]
apgbfm -f filter -C dictfile [-q]
apgbfm -i filter
apgbfm [-v] [-h]
π¦ DESCRIPTION π¦
okay so apgbfm manages a Bloom filter, and that filter is what restricts password generation in APG password generation software π. Using a Bloom filter speeds up password checks for big dictionaries, and it has some other perks too β¨.
The idea to use a Bloom filter for this came from the OPUS project description, OPUS: Preventing Weak Password Choices, Purdue Technical Report CSD-TR 92-028, written by Eugene H. Spafford. You can grab the article from http://www.cerias.purdue.edu/homes/spaf/tech-reps/9128.ps. It has a really good explanation of Bloom filters and why they're great for password checking systems π€.
In simple words, apgbfm generates n hash values for every word and flips the matching bits in the filter file to 1. To check a word, it generates the same hash functions for that word. If all n matching bits are set to 1, it assumes the word exists in the dictionary π«Ά. apgbfm uses SHA-1 as its hash function.
apgbfm can be used as a standalone utility, not only with apg or apgd πΈ.
WARNING !!! Filter file format can be changed in the future. I'll try to keep file formats compatible, but I can not guarantee this π.
WARNING !!! apgbfm may slow down your computer during filter creation. π
π OPTIONS π
-f filterβ usefilteras the filename for the Bloom filter. Main character energy π.-i filterβ print information aboutfilter.-n numofwordsβ create a brand new empty filter fornumofwordswords. Super useful when you want to fill the filter dynamically π§.-d dictfileβ create a new filter fromdictfile. Building from a big dictionary can take a lot of time β³. In that dictionary you can place words (one per line) that should never show up as generated passwords, like user names, common words, etc. You can even use one of the dictionaries that come with dictionary password crackers π. This check is case sensitive, so if you want to rejectroot, you should putroot,Root,RoOt, ... ,ROOTin the dictfile π. To show it's working,apgbfmprints a dot for every 100 words added in the dictionary.-a wordβ addwordto the filter β¨.-A dictfileβ add all words fromdictfileto the filter. It prints a dot for every 100 words added in the dictionary, so you know it's alive π.-c wordβ checkwordfor appearance in the filter π.-C dictfileβ check every word fromdictfilefor appearance in the filter.-qβ quiet mode π€«.-sβ create a new filter in case-insensitive mode.-vβ print version information.-hβ print help information.
π EXIT CODE π
When apgbfm finishes its task successfully, it exits with code 0 β
. An exit code of -1 means an error happened π¨. Textual errors get written to the standard error stream.
π§ FILES π§
None. Literally nothing to see here π .
π BUGS π
None. If you've found one, please send a bug description to the author π.
And honestly? This man page is Alpha too. π«
π SEE ALSO π
π AUTHOR π
Adel I. Mirzazhanov, <a-del@iname.com>
Project home page: http://www.adel.nursat.kz/apg/ πΈ
bye bestie ππ This page came from the Automated Password Generator, last updated 2003 Jun 19 πβ¨
π¦ where this page comes from
- alpine 3.22: apg-doc 2.2.3-r7 Β· BSD-3-Clause
- alpine 3.23: apg-doc 2.2.3-r7 Β· BSD-3-Clause
- alpine 3.24: apg-doc 2.2.3-r7 Β· BSD-3-Clause
- epel 10: apg 2.3.0b-50.el10_2 Β· BSD-3-Clause
- epel 9: apg 2.3.0b-40.el9 Β· BSD
- fedora 43: apg 2.3.0b-50.fc43 Β· BSD-3-Clause
- fedora 44: apg 2.3.0b-52.fc44 Β· BSD-3-Clause
- opensuse-leap 16.0: apg 2.2.3-bp160.1.12 Β· BSD-3-Clause
- opensuse-leap 16.0: apg 2.2.3-bp160.1.12 Β· BSD-3-Clause
- opensuse-leap 16.0: apg 2.2.3-bp160.1.12 Β· BSD-3-Clause
- opensuse-leap 16.0: apg 2.2.3-bp160.1.12 Β· BSD-3-Clause
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms