Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- GO TO: http://www.compileonline.com/execute_php_online.php
- COPY AND PASTE:
- <?php
- // EXAMPLE USAGE
- $array = generate();
- echo $array[0];
- echo "<br />";
- echo $array[1];
- // FUNCTION
- function generate()
- {
- $digilist = "0123456789ABCDEFGHJKLMNPQRTUVWXY";
- //now we generate a new random ID number using the substrings of the digitList string above
- $id = NULL;
- $id .= substr($digilist, rand(1, 9), 1); //random number
- $id .= substr($digilist, rand(10, 31), 1); //then a letter
- $id .= substr($digilist, rand(10, 31), 1); //another letter
- $id .= substr($digilist, rand(1, 9), 1); //a number
- $id .= substr($digilist, rand(1, 9), 1); //and finally another number - simple :D
- //ok so now we need to generate an MD5 hash of our ID
- $hash = md5($id);
- //cycle through the hash 16 (length of key) times (in steps of 2 because each hex bytes is 2 digits long)
- $i = 0;
- $key = NULL;
- for ($i; $i < 32; $i+=2)
- {
- //here we convert the next hex value to an integer and perform a bitwise AND operation against '31'
- //31 is the highest substring value in our digit list.
- $nextdigit = hexdec(substr($hash, $i, 2)) & 31;
- //if 'i' is divisable by 8 (every 4 cycles) then we want to add "-"
- if ((($i % 8) == 0) && ($i > 0))
- {
- $key .= "-".substr($digilist, $nextdigit, 1);
- }
- else
- {
- $key .= substr($digilist, $nextdigit, 1);
- }
- }
- $array = array($id, $key);
- //return
- return $array;
- }
- ?>
Add Comment
Please, Sign In to add comment