Here is a simple PHP function, that can be used for generating strong passwords.


- # The generated string will contain Numbers, Special characters and Upper & Lower case alphabets
- # You can specify the number of characters in the generated string
- # If number of characters is not given, the function will return an alphanumeric string having 7 characters with all type of characters given above
- # Function call with string length generatePasswordString(8)
- # Function call with out string length generatePasswordString()
<?php
function generatePasswordString($nLength=0){
//few letters are avoided as it may confuse users
$cLetterArray=array("A","B","C","D","E","G","H","K","M","N","P","Q","R","S","T","X","Y","Z");
$sLetterArray=array("a","b","c","d","e","g","h","k","m","n","p","q","r","s","t","x","y","z");
$spCharArray=array("!","@","$","&","*","?","-","#");
$arrStr= array();
if( !$nLength ){
$arrStr[0]=$cLetterArray[rand(0,17)];
$arrStr[1]=$spCharArray[rand(0,7)];
$arrStr[2]=$sLetterArray[rand(0,17)];
$arrStr[3]=$cLetterArray[rand(0,17)];
$arrStr[4]=$spCharArray[rand(0,7)];
$arrStr[5]=rand(1,9);
$arrStr[6]=$sLetterArray[rand(0,17)];
$strAlphaNumeric=implode("",$arrStr);
}else{
$nChk=rand(1,3);
$arrStr[0]=($nChk==2)?$sLetterArray[rand(0,17)]:($nChk==1)?$cLetterArray[rand(0,17)]:rand(1,9);
for($i=1;$i<$nLength; $i++){
$randval=rand(1,40);
if( $randval > 0 && $randval <= 10 ) $arrStr[$i]=$cLetterArray[rand(0,17)];
elseif( $randval > 10 && $randval <= 20 ) $arrStr[$i]=$sLetterArray[rand(0,17)];
elseif( $randval > 20 && $randval <= 30 ) $arrStr[$i]=$spCharArray[rand(0,7)];
else $arrStr[$i]=rand(1,9);
}
$strAlphaNumeric=implode("",$arrStr);
}
return $strAlphaNumeric;
}
// how to call the function
echo "Password string :: ".generatePasswordString(10);
?>
function generatePasswordString($nLength=0){
//few letters are avoided as it may confuse users
$cLetterArray=array("A","B","C","D","E","G","H","K","M","N","P","Q","R","S","T","X","Y","Z");
$sLetterArray=array("a","b","c","d","e","g","h","k","m","n","p","q","r","s","t","x","y","z");
$spCharArray=array("!","@","$","&","*","?","-","#");
$arrStr= array();
if( !$nLength ){
$arrStr[0]=$cLetterArray[rand(0,17)];
$arrStr[1]=$spCharArray[rand(0,7)];
$arrStr[2]=$sLetterArray[rand(0,17)];
$arrStr[3]=$cLetterArray[rand(0,17)];
$arrStr[4]=$spCharArray[rand(0,7)];
$arrStr[5]=rand(1,9);
$arrStr[6]=$sLetterArray[rand(0,17)];
$strAlphaNumeric=implode("",$arrStr);
}else{
$nChk=rand(1,3);
$arrStr[0]=($nChk==2)?$sLetterArray[rand(0,17)]:($nChk==1)?$cLetterArray[rand(0,17)]:rand(1,9);
for($i=1;$i<$nLength; $i++){
$randval=rand(1,40);
if( $randval > 0 && $randval <= 10 ) $arrStr[$i]=$cLetterArray[rand(0,17)];
elseif( $randval > 10 && $randval <= 20 ) $arrStr[$i]=$sLetterArray[rand(0,17)];
elseif( $randval > 20 && $randval <= 30 ) $arrStr[$i]=$spCharArray[rand(0,7)];
else $arrStr[$i]=rand(1,9);
}
$strAlphaNumeric=implode("",$arrStr);
}
return $strAlphaNumeric;
}
// how to call the function
echo "Password string :: ".generatePasswordString(10);
?>