Password Definition Language

4.4. Useful examples of password definition

1) I remember that my password consist of two words separated by the one of the signs "-", "_", "=", "," and the first letter of the words are in the uppercase

$w = "dictionary.txt"
##
$w.u(1) [\-_\=,] $w.u(1)    # "-", "=" needs to be shielded

It should be mentioned that both $w are distinct here (these are distinct words), so a total of 20000 * 4 * 20000 = 1 600 000 000 passwords (if there are 20000 dictionary words) will be generated.

If you're not sure if first letter be in uppercase or not, you need to make all possible combination writing four-line definition:

$w = "dictionary.txt"
##
$w.u(1) [\-_\=,] $w.u(1)
$w.u(1) [\-_\=,] $w
$w [\-_\=,] $w.u(1)
$w [\-_\=,] $w

Additionaly, if you may insert from 1 to 3 symbols between the words, the definition is changed as:

$w = "dictionary.txt"
##
$w.u(1) [\-_\=,] *(1,3) $w.u(1)

2) Most common definition - brute-force search using only lower-case Latin letters.

$a *

You also can use min= and max= settings to define password length.

3) The same as the above, but using both cases Latin letter

[$a $A] *

4) Simplest dictionary attack

$w

5) Dictionary attack with all possible upper/lower-case combinations:

{$w}.u

5) Let me cite ZEXPL2L program specification: "Let you have an archive with the password looking like "Heaven!!!", but you have forgotten, how many !s were there in the end and what kind of letters lower- or upper-cased were used: "HeAvEn!!!", "Heaven!" or "HeAven!!!!". But fortunately you remember your password to be 10 characters at most and 7 characters at least." This password will be written in PDL language as follows:

min = 7
max = 10
##
{heaven}.u ! *

Suppose that among other things you have mistaken while typing the main part of the password. So the following one is worth attention:

min = 7
max = 10
##
{{heaven}}.u ! *

6) One more citation from the same specification: "Let you have two variants of the password string: "myprog", "MyProg", "my_prog" and "My_Prog". It will be written as:

[mM] y [_ \0] [pP] rog

7) Password consists of exactly six letters from national alphabet:

$i $i $i $i $i $i

But

min = 6
max = 6
##
$i *
are far more efficient.

8) The date in DDMMYYYY format:

$1 * (8)

But

[0123] $1 [01] $1 [12][90] $1 *(2)
will generate much less passwords.

See also performance issues on this example.

9) You remember your password to be "MyVeryLongGoodPassword", but it is not valid for some reason. Try to use the following ones:

{MyVeryLongGoodPassword}

2360 passwords in total

{MyVeryLongGoodPassword}.2

2 785 406 passwords

10) You know you password to be a meaningful word with a digit inserted elsewhere. The definition file is:

$p = [$1] # the insertion set is defined as a set of digits
##
{$w}

11) Syllable attack. You need to set up a dictionary of possible syllables of your language and then to search through all the meaningful words by proceeding as follows:

$u # monosyllabic words
$u$u # disyllabic words
$u$u$u # etc.
$u$u$u$u