Very often the need to create passwords or some other ‘unique’ string be it a captcha or for use as unique identifier (UUID).
Here are a few functions I’ve used and refined over the years, 2 types, for password/random string generation and UUID generation.
Generating random strings is pretty simple as it’ll be a password.
However for a UUID there is always the slim chance it’s not unique.
To fully ensure a UUID is actually unique combine any of the functions depending on what yuou prefere with something like:
do{ $newUUID=...//however you generate it... $result=mysql_query("Select * from $table where youridfield=$newUUID;"); }while(mysql_num_rows($result)>0);
to check if it really does’nt exist first!
Below are some of the outputs that my function(s) generate:
Perfect for: PASSWORD GENERATION
Options: variable length
generateRandStr(8)
result: 4sRBfahW
function generateRandStr_md5 ($length) { // Perfect for: PASSWORD GENERATION // Generate a random string based on an md5 hash $randStr = strtoupper(md5(rand(0, 1000000))); // Create md5 hash $rand_start = rand(5,strlen($randStr)); // Get random start point if($rand_start+$length > strlen($randStr)) { $rand_start -= $length; // make sure it will always be $length long } if($rand_start == strlen($randStr)) { $rand_start = 1; // otherwise start at beginning! } // Extract the 'random string' of the required length $randStr = strtoupper(substr(md5($randStr), $rand_start, $length)); return $randStr; // Return the string } function generateRand_uuid ( $prefix = 'W' ) { // Perfect for: UNIQUE ID GENERATION // Create a UUID made of: PREFIX:TIMESTAMP:UUID $my_random_id = $prefix; $my_random_id .= chr ( rand ( 65, 90 ) ); $my_random_id .= time (); $my_random_id .= uniqid ( $prefix ); return $my_random_id; } function generateRand_uuid_l ( $prefix = 'W', $length=0 ) { // Perfect for: UNIQUE ID GENERATION // Create a UUID made of: PREFIX:TIMESTAMP:UUID(PART - LENGTH - or FULL) $my_random_id = $prefix; $my_random_id .= chr ( rand ( 65, 90 ) ); $my_random_id .= time (); $my_uniqid = uniqid ( $prefix ); if($length > 0) { $my_random_id .= substr($my_uniqid, $length); } else { $my_random_id .= $my_uniqid; } return $my_random_id; } function generateRand_md5uid(){ // Perfect for: UNIQUE ID GENERATION // Create a really STRONG UUID // Very high odds of creating a unique string 1:1000000+ $better_token = md5(uniqid(rand(), true)); $unique_code = substr($better_token, 64); $uniqueid = $unique_code; return $better_token; } ?>