APGBFM(1)

πŸ“¦
version 2.3.0b Β· 3 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, epel 10, epel 9, fedora 43, fedora 44, opensuse-leap 16.0

πŸ’– 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 β€” use filter as the filename for the Bloom filter. Main character energy πŸ‘‘.
  • -i filter β€” print information about filter.
  • -n numofwords β€” create a brand new empty filter for numofwords words. Super useful when you want to fill the filter dynamically 🧚.
  • -d dictfile β€” create a new filter from dictfile. 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 reject root, you should put root, Root, RoOt, ... , ROOT in the dictfile πŸ™ƒ. To show it's working, apgbfm prints a dot for every 100 words added in the dictionary.
  • -a word β€” add word to the filter ✨.
  • -A dictfile β€” add all words from dictfile to the filter. It prints a dot for every 100 words added in the dictionary, so you know it's alive πŸ’œ.
  • -c word β€” check word for appearance in the filter πŸ”.
  • -C dictfile β€” check every word from dictfile for 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 πŸ”—

apgd(8), apg(1) πŸ¦‹

πŸ’œ 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 πŸŽ€βœ¨