Advanced Password List Generator

Apligen generates list of password for password crackers.

It can be use for brute force attack or direct attack (when you know password profile, you have seen somebody typing password or you forgot your password). We support password rules (such MS AD complexity and regex masks) and parallel processing (use many hosts).


  • Change default characters set
  • Use different characters set for each position
  • Define minimum password length (don't start from one letter password)
  • Handle many output files (split list into many files)
  • Randomize characters order
  • Concat string at begining and end
  • Skip password with the same letter in row
  • Match password to the mask
  • Convert output to hex
  • Password complexity policy
  • Password can't contain string
  • Each character can be used only once
  • Store password skipped by rules
  • 3 loops: Fast, Medium, Slow
  • Progress indicator
  • Parallel Independent Processing
  • Match password to regex expr
  • Limit list to x passwords
  • Create list of random strong passwords
  • Summary
See changelog here


Download from sf.net here


Upack archive. Open terminal. Run make. Run:
./apligen options (see example)


Minimum (-m) and maximum (-x) password length - This positions are mandatory. They indicate length of the password. If min = 1 and max = 3 first generated will be one letter password then two letters and three. If you set min = 2 one letter password will no be generated. If you know exactly password length use min = X and max = X"

Used characters - You must specify which characters will be used. You can do that in following ways:
1. Read characters from file (Best way)
   -c char.txt
   File must have one set per line
   1. 1234567890qw
   2. 1234567890er
   3. 1234567890
   4. 1234567890ty

2. Use predefined characters set by
   -n - numbers
   -l - lower case letters
   -u - upper case letters
   -s - special characters

3. Use your own set by -g option
   -g qwertasdzxc123

4. Use your own set for each position by -A option
   -p qweasd%1234%0po9i8%123
   % seperates posiions
   Created set will by as follow
   1. qwersd
   2. 1234
   3. 0po9i8
   4. 1234

If one position do not requaire additional characters use -
   -p qweasd%1234%-%123
   Created set will by as follow
   1. qwersd
   2. 1234
   4. 1234

If you want to use % or - in your set use -1 for - and -2 for %
   -p qwe%-1%-2%123
   Created set will by as follow
   1. qwe
   2. -
   3. %
   4. 123

WARNING: Each position must have at least one character
WARNING: Number of sets can't be larger than maximum password length

5. Mixed
   -n -g qwe -p Q%W%E
   Created set will by as follow
   1. 1234567890qweQ
   2. 1234567890qweW-
   3. 1234567890qweE
   4. 1234567890qwe

Output file - You can specify output in following ways:
1. One file by -o option
    -o path

2. Many files in one folder
    -o path -e 4
   This will create files path0, path1, path2 path3 and output will be splitted into 4 parts

3. Read from file by - F option
   -f path
   File mus contains destination file paths, one path per line

4. Input seperated by %
   -w path1%path2%path3

5. Mixed - use all methods together

Advanced options - All following options can be used together.
1. Default generation

2. Reverse order set -I

3. Reverse output -D

4. Concat at beginning -B qwe

5. Concat at end -E qwe

4. Randomized -R
   Characters order is randomized for each position seperatly. When using with PIM use fixed seed (-F number)

Rules - Skipping some passwords
1. Letters in row - password that have number or more the same characters in row will be skipped -W number
2. Store filtered passwords in file - d file
3. Mask - match password to the mask -K string

For mask %1%2%2%1 password list will be as follow:

4. String can't be appart of password -C qwe
5. Minimum numbers in password -N number
6. Minimum lower case letters in password -L number
7. Minimum upper case letters in password -U number
8. Minimum special characters in passowrd -S number
9. AD complexity - password must have at lest 3 characters types -A
10. Characters must be a part of password -G char
11. Each character can be used only once in password -O
12. Match password to regex expr -X "regex"

1. Convert output to hex -H
2. Stop after generating x password -Z number
3. Generate only strong passwords -Q . Use only with -Z option
4. PIM - Parallel Independent Processing. Use many cores, computers to generate one list at the same time. See example.
5. Fixed seed. Use with PIM and Randomization -F number

apligen -m 3 -x 3 -lun -o output.txt
apligen -m 5 -x 5 -lun -o output.txt -K 1%2%3%2%1 -R
apligen -m 1 -x 8 -luns -o output.txt -A -H
apligen -m 3 -x 3 -c char.txt -o output.txt -E end
apligen -m 4 -x 7 -lun -o output.txt -L 2

(PIM-1) apligen -m 6 -x 6 -n -o output1.txt -P 1/4
(PIM-2) apligen -m 6 -x 6 -n -o output2.txt -P 2/4
(PIM-3) apligen -m 6 -x 6 -n -o output3.txt -P 3/4
(PIM-4) apligen -m 6 -x 6 -n -o output4.txt -P 4/4