Supported types of passwords

Supported types of passwords – This part of the documentation introduces the different supported types of passwords and gives examples for their usage.

Pronounceable passwords

One feature of the package is the ability to create passwords that are pronounceable using the static create() method. createMultiple() can be used to create several passwords at once.

Creating a pronounceable password:

<?php
require_once "Text/Password.php";

echo 
"Creating pronounceable password of 10 chars....: ";
echo 
Text_Password::create() . "\n\n";

echo 
"Creating 3 different pronounceable passwords...: ";
print_r(Text_Password::createMultiple(3));
?>

Unpronounceable passwords

In addition to pronounceable passwords Text_Password can also handle passwords that are not pronounceable.

Creating a unpronounceable password:

<?php
require_once "Text/Password.php";

echo 
"\nCreating unpronounceable password of 8 chars with a,b,c as possible chars....:\t";
echo 
Text_Password::create(8'unpronounceable''a,b,c') . "\n\n";

echo 
"\nCreating 4 different unpronounceable passwords...:\n";
print_r(Text_Password::createMultiple(410'unpronounceable'));

echo 
"\nCreating unpronounceable password of 8 chars with numeric chars:\t";
echo 
Text_Password::create(8'unpronounceable''numeric') . "\n\n";

echo 
"\nCreating unpronounceable password of 8 chars with alphanumeric chars:\t";
echo 
Text_Password::create(8'unpronounceable''alphanumeric') . "\n\n";
?>

Passwords based on given strings

Text_Password provides the ability to create passwords that are based on a given string. In a lot of cases this string is a existing username for a authentication system.

Creating passwords based on a given string:

<?php
require_once "Text/Password.php";

echo 
"\nCreating password from login 'olivier', type is 'reverse':\t";
echo 
Text_Password::createFromLogin('olivier''reverse') . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'rot13':\t";
echo 
Text_Password::createFromLogin('olivier''rot13') . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'rotx':\t";
echo 
Text_Password::createFromLogin('olivier''rotx'13) . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'rotx++':\t";
echo 
Text_Password::createFromLogin('olivier''rotx++'13) . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'rotx--':\t";
echo 
Text_Password::createFromLogin('olivier''rotx--'13) . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'xor':\t";
echo 
Text_Password::createFromLogin('olivier''xor'5) . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'ascii_rotx':\t";
echo 
Text_Password::createFromLogin('olivier''ascii_rotx'5) . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'ascii_rotx++':\t";
echo 
Text_Password::createFromLogin('olivier''ascii_rotx++'5) . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'ascii_rotx--':\t";
echo 
Text_Password::createFromLogin('olivier''ascii_rotx--'5) . "\n\n";

echo 
"\nCreating password from login 'olivier', type is 'shuffle':\t";
echo 
Text_Password::createFromLogin('olivier''shuffle'1) . "\n\n";

echo 
"\nCreating password from an array of login 'olivier', 'martin', 'vanhoucke', 'jansen', type is 'reverse':\n";
$logins = array('olivier''martin''vanhoucke''jansen');
print_r(Text_Password::createMultipleFromLogin($logins'reverse'));
?>

Currently the following obfuscation algorithms are supported:

  • xor
  • rotx
  • rotx++
  • rotx--
  • ascii_rotx
  • ascii_rotx++
  • ascii_rotx--
  • shuffle
  • reverse