Create random string

How do you generate codes that must be 16 digits in length, unique, consisting of 1-9, az and AZ (case sensitive, obviously so Abc1 does not match abc1) ex: Ahs78D7xkEshud45

I tried to do this, but cannot figure out how simple it is to do it.

Thank you for your help!

0
source share
6 answers

If uniqueness doesn't really matter, you can try the following:

function randomString() { $length = 16; $chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; $str = ""; for ($i = 0; $i < $length; $i++) { $str .= $chars[mt_rand(0, strlen($chars) - 1)]; } return $str; } 

For a more unique alternative, use the hash function:

 $str = substr(base64_encode(sha1(mt_rand())), 0, 16); 
+9
source

can use mt_rand () + md5 + base64 combination and cut it with substr

try the following code:

 <?php $unique = substr(base64_encode(md5( mt_rand() )), 0, 15); ?> 

edit: Actually, the md5 bit is not required, so the following code will be simpler and faster:

 <?php $unique = substr(base64_encode(mt_rand()), 0, 15); ?> 

edit2: creates lines like:

NTA2YWUxODEzNDkw

+4
source

Perhaps you can try the following:

 $unique_id = substr(md5(uniqid(rand(), true)), 16, 16); 
+1
source

Do not use the uniqid substring. This does not guarantee uniqueness; if I gave you a set of unique numbers {101, 102, 103}, and you took the first two digits and assumed that they would be unique ...

Indeed, you are using PHP. Set up a database table in which you store the generated unique codes, index them and check them when you create new, completely random codes. It will cost O (log (n)) time, where n is the number of codes that you have already generated. If you do not want this, save the previously created codes in a hash table. But without recalling your previous results, you cannot guarantee uniqueness.

+1
source
 $n = rand(10e16, 10e20); $rand = base_convert($n, 30, 36); 

created as follows: 5urp7h2p6a8so0o0

0
source
 function assign_rand_value($num) { // accepts 1 - 36 switch($num) { case "1": $rand_value = "a"; break; case "2": $rand_value = "b"; break; case "3": $rand_value = "c"; break; case "4": $rand_value = "d"; break; case "5": $rand_value = "e"; break; case "6": $rand_value = "f"; break; case "7": $rand_value = "g"; break; case "8": $rand_value = "h"; break; case "9": $rand_value = "i"; break; case "10": $rand_value = "j"; break; case "11": $rand_value = "k"; break; case "12": $rand_value = "l"; break; case "13": $rand_value = "m"; break; case "14": $rand_value = "n"; break; case "15": $rand_value = "o"; break; case "16": $rand_value = "p"; break; case "17": $rand_value = "q"; break; case "18": $rand_value = "r"; break; case "19": $rand_value = "s"; break; case "20": $rand_value = "t"; break; case "21": $rand_value = "u"; break; case "22": $rand_value = "v"; break; case "23": $rand_value = "w"; break; case "24": $rand_value = "x"; break; case "25": $rand_value = "y"; break; case "26": $rand_value = "z"; break; case "27": $rand_value = "0"; break; case "28": $rand_value = "1"; break; case "29": $rand_value = "2"; break; case "30": $rand_value = "3"; break; case "31": $rand_value = "4"; break; case "32": $rand_value = "5"; break; case "33": $rand_value = "6"; break; case "34": $rand_value = "7"; break; case "35": $rand_value = "8"; break; case "36": $rand_value = "9"; break; } return $rand_value; } 

you can put it in a loop for multiple execution and save in a line ...

it can help you.

0
source

All Articles