PX : code

Password generator by Filip Vandegehuchte
Download this code


<?php


// This code can be used and redistributed free of copyrights if 
// this copyright header is left intact
// Author : Filip Vandegehuchte
// Comments and other feedback welcome at
// http://www.phpzone.com/?function=gen_pass
// Version : 1.0 | 29 november 2001

function gen_pass(){

$pass_length=6/// this is the minimum length of the password

$p1=array('b','c','d','f','g','h','j','k','l','m','n','p','r','s','t','v','w','x','z'); // I hate the 'Q'
$p2=array('a','e','i','o','u'); // I hate 'Y'
$p3=array('1','2','3','4','5','6','7','8','9');        // 0 is not inside not to confuse people
$p4=array('','&','',';','%');    // if you need real strong stuff

// how much elements in the array 
// can be done with a array count but counting once here is faster 

$s1=19;// this is the count of $p1   
$s2=5// this is the count of $p2
$s3=9// this is the count of $p3
$s4=5// this is the count of $p4

// possible readable combinations

$c1='121';    // will be like 'bab'
$c2='212';      // will be like 'aba'
$c3='12';      // will be like 'ab'
$c4='3';        // will be just a number '1 to 9'  if you dont like number delete the 3
// $c5='4';        // uncomment to active the strong stuff

$comb='4'// the amount of combinations you made above (and did not comment out)



for ($p=0;$p<$pass_length;) {

mt_srand((double)microtime()*1000000);

$strpart=mt_rand(1,$comb);

// checking if the stringpart is not the same as the previous one 
if($strpart<>$previous) {
$pass_structure.=${'c'.$strpart};

// shortcutting the loop a bit
$p=$p+strlen(${'c'.$strpart});
}

$previous=$strpart;
}


// generating the password from the structure defined in $pass_structure

for ($g=0;$g<strlen($pass_structure);$g++) {
mt_srand((double)microtime()*1000000);

$sel=substr($pass_structure,$g,1);
$pass.=${'p'.$sel}[mt_rand(0,-1+${'s'.$sel})];

}
return 
$pass;

}




// just a test 

 
for ($t=0;$t<30;$t++) {
 echo 
gen_pass().'<br>';
 }
 
?>



Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.