Skip to content
David Kittell
David Kittell

Application & System: Development / Integration / Orchestration

  • Services
    • Application Development
    • Online Application Integration
  • Code
  • Online Tools
  • Tech Support
David Kittell

Application & System: Development / Integration / Orchestration

Password Generation

Posted on August 15, 2013October 26, 2015 By David Kittell
function generatePassword($length=9, $strength=0) {
	$vowels = 'aeuy';
	$consonants = 'bdghjmnpqrstvz';
	if ($strength & 1) {
		$consonants .= 'BDGHJLMNPQRSTVWXZ';
	}
	if ($strength & 2) {
		$vowels .= "AEUY";
	}
	if ($strength & 4) {
		$consonants .= '23456789';
	}
	if ($strength & 8) {
		$consonants .= '@#$%';
	}

	$password = '';
	$alt = time() % 2;
	for ($i = 0; $i < $length; $i++) {
		if ($alt == 1) {
			$password .= $consonants[(rand() % strlen($consonants))];
			$alt = 0;
		} else {
			$password .= $vowels[(rand() % strlen($vowels))];
			$alt = 1;
		}
	}
	return $password;
}

echo generatePassword(8,4) . '<br>';
echo generatePassword(8,4) . '<br>';
echo generatePassword(8,4) . '<br>';
echo generatePassword(8,4) . '<br>';
echo generatePassword(8,4) . '<br>';

Version 1 Example:
‘;
echo generatePassword(8,4) . ‘
‘;
echo generatePassword(8,4) . ‘
‘;
echo generatePassword(8,4) . ‘
‘;
echo generatePassword(8,4) . ‘
‘;
?>

if (!$length){ $length = '8'; }
if (!$withchar){ $withchar = 'no'; }
if (!$lowers){ $lowers = 'yes'; }
if (!$uppers){ $uppers = 'yes'; }
if (!$nums){ $nums = 'yes'; }
if ($withchar == 'no' AND $lowers == 'no' AND $uppers == 'no' AND $nums == 'no'){ print("<b><font color=red>Error:</font> You MUST Select SOMETHING!<BR><HR>We Suggest Selecting What You Want First & Before Selecting What You Don't Want..<HR></b>"); exit; }
if ($lowers == 'yes'){$char[] = 'a'; $char[] = 'b'; $char[] = 'c'; $char[] = 'd';$char[] = 'e';$char[] = 'f';$char[] = 'g';$char[] = 'h';$char[] = 'i';$char[] = 'j';$char[] = 'k';$char[] = 'l';$char[] = 'm';$char[] = 'n';$char[] = 'o';$char[] = 'p';$char[] = 'q';$char[] = 'r';$char[] = 's';$char[] = 't';$char[] = 'u';$char[] = 'v';$char[] = 'w';$char[] = 'x';$char[] = 'y';$char[] = 'z';}
if ($uppers == 'yes'){$char[] = 'A';$char[] = 'B';$char[] = 'C';$char[] = 'D';$char[] = 'E';$char[] = 'F';$char[] = 'G';$char[] = 'H';$char[] = 'I';$char[] = 'J';$char[] = 'K';$char[] = 'L';$char[] = 'M';$char[] = 'N';$char[] = 'O';$char[] = 'P';$char[] = 'Q';$char[] = 'R';$char[] = 'S';$char[] = 'T';$char[] = 'U';$char[] = 'V';$char[] = 'W';$char[] = 'X';$char[] = 'Y';$char[] = 'Z';}
if ($nums == 'yes'){$char[] = '0';$char[] = '1';$char[] = '2';$char[] = '3';$char[] = '4';$char[] = '5';$char[] = '6';$char[] = '7';$char[] = '8';$char[] = '9';}
if ($withchar == 'yes'){$char[] = '!';$char[] = '@';$char[] = '$';$char[] = '^';$char[] = '+';$char[] = '|';$char[] = '>';$char[] = '<';}
$num = count($char);$num -= 1;
for ($i = 0; $i < 9; $i++){
srand((double)microtime()*1000000);
$randnum = rand(0,$num);
$password .= "$char[$randnum]";
$randnum = rand(0,$num);
$password .= "$char[$randnum]";}

Version 2 Example:
Error: You MUST Select SOMETHING!


We Suggest Selecting What You Want First & Before Selecting What You Don’t Want..


“); exit; }
if ($lowers == ‘yes’){$char[] = ‘a’; $char[] = ‘b’; $char[] = ‘c’; $char[] = ‘d’;$char[] = ‘e’;$char[] = ‘f’;$char[] = ‘g’;$char[] = ‘h’;$char[] = ‘i’;$char[] = ‘j’;$char[] = ‘k’;$char[] = ‘l’;$char[] = ‘m’;$char[] = ‘n’;$char[] = ‘o’;$char[] = ‘p’;$char[] = ‘q’;$char[] = ‘r’;$char[] = ‘s’;$char[] = ‘t’;$char[] = ‘u’;$char[] = ‘v’;$char[] = ‘w’;$char[] = ‘x’;$char[] = ‘y’;$char[] = ‘z’;}
if ($uppers == ‘yes’){$char[] = ‘A’;$char[] = ‘B’;$char[] = ‘C’;$char[] = ‘D’;$char[] = ‘E’;$char[] = ‘F’;$char[] = ‘G’;$char[] = ‘H’;$char[] = ‘I’;$char[] = ‘J’;$char[] = ‘K’;$char[] = ‘L’;$char[] = ‘M’;$char[] = ‘N’;$char[] = ‘O’;$char[] = ‘P’;$char[] = ‘Q’;$char[] = ‘R’;$char[] = ‘S’;$char[] = ‘T’;$char[] = ‘U’;$char[] = ‘V’;$char[] = ‘W’;$char[] = ‘X’;$char[] = ‘Y’;$char[] = ‘Z’;}
if ($nums == ‘yes’){$char[] = ‘0’;$char[] = ‘1’;$char[] = ‘2’;$char[] = ‘3’;$char[] = ‘4’;$char[] = ‘5’;$char[] = ‘6’;$char[] = ‘7’;$char[] = ‘8’;$char[] = ‘9’;}
if ($withchar == ‘yes’){$char[] = ‘!’;$char[] = ‘@’;$char[] = ‘$’;$char[] = ‘^’;$char[] = ‘+’;$char[] = ‘|’;$char[] = ‘>’;$char[] = ‘<';} $num = count($char);$num -= 1; for ($i = 0; $i < 9; $i++){ srand((double)microtime()*1000000); $randnum = rand(0,$num); $password .= "$char[$randnum]"; $randnum = rand(0,$num); $password .= "$char[$randnum]";} echo $password; ?>

Originally Posted on August 15, 2013
Last Updated on October 26, 2015
All information on this site is shared with the intention to help. Before any source code or program is ran on a production (non-development) system it is suggested you test it and fully understand what it is doing not just what it appears it is doing. I accept no responsibility for any damage you may do with this code.

Related

Code PHP

Post navigation

Previous post
Next post

Related Posts

Mac Terminal – Random Readable Password

Posted on February 1, 2017

I recently was challenged to create a random readable password for Mac OS. While I designed this for Mac OS it’s likely it will work with little to no changes on any UNIX system. Password format was two digit number then a word followed by another word with special characters…

Read More

Regex Replace

Posted on August 6, 2013October 26, 2015

IF OBJECT_ID(N’dbo.RegexReplace’) IS NOT NULL DROP FUNCTION dbo.RegexReplace GO CREATE FUNCTION dbo.RegexReplace ( @pattern VARCHAR(255) ,@replacement VARCHAR(255) ,@Subject VARCHAR(MAX) ,@global BIT = 1 ,@Multiline BIT = 1 ) RETURNS VARCHAR(MAX) /*The RegexReplace function takes three string parameters. The pattern (the regular expression) the replacement expression, and the subject string to…

Read More

VB.NET – Remove Empty Folders

Posted on December 14, 2013December 22, 2019

‘Remove Empty Folders – Start Public Shared Sub RemoveEmptyFolders(ByVal path As String) Dim directory As New DirectoryInfo(path) For Each subDirectory As DirectoryInfo In directory.GetDirectories() If subDirectory.GetFiles().Length = 0 Then Try subDirectory.Delete() Catch ex As Exception End Try End If Next subDirectory End Sub ‘Remove Empty Folders – Stop Originally Posted…

Read More

Code

Top Posts & Pages

  • PowerShell - Rename Pictures to Image Taken
  • Front Page
  • C# - Start/Stop/Restart Services
  • MacPorts / HomeBrew - Rip CD tracks from terminal
  • PowerShell - Show File Extensions

Recent Posts

  • Javascript – Digital Clock with Style
  • BASH – Web Ping Log
  • BASH – Picture / Video File Name Manipulation
  • Mac OSX Terminal – Create SSH Key
  • Bash – Rename Picture

Top Posts

  • PowerShell - Rename Pictures to Image Taken
  • C# - Start/Stop/Restart Services
  • MacPorts / HomeBrew - Rip CD tracks from terminal
  • PowerShell - Show File Extensions
  • Open On Screen Keyboard (OSK)
  • SQLite - Auto-Increment / Auto Generate GUID
©2025 David Kittell | WordPress Theme by SuperbThemes