vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Generate random key (https://vborg.vbsupport.ru/showthread.php?t=163845)

Mythotical 11-29-2007 03:46 AM

Generate random key
 
I haven't figured out yet how to generate a random key that consists of letters and numbers. I managed to get it to generate numbers but for the life of me I can't seem to figure out how to generate a random alphanumeric key.

Here is what I am using for numeric only:
PHP Code:

mt_rand(); 

I know, thats simple, but I am using it temporarily till I figure out how to generate a key that consists of alphanumeric and is length is 16, no matter how many key's it generates.

Any help greatly appreciated

EDIT: Also, I have read quite a few articles on php.net but alas have come up empty handed.

Thanks in advance
Steve M

MoT3rror 11-29-2007 03:53 AM

This page should help you.
http://www.i-fubar.com/random-string-generator.php

Hossie 11-29-2007 12:39 PM

Is the link a joke? 2 lines are enough:

PHP Code:

<?php
function randomstr($length){
  for(
$i=0$i<$length$i++)$str[$i]=chr(rand(97122));
  return 
implode(""$str);
}
echo 
randomstr(16);
?>


Mythotical 11-29-2007 12:58 PM

Thanks MoT3rror and Hossie.

Hossie, what you gave me worked but it gave me a 16 letter string. I need it to be a mix of letters and numbers.

Hossie 11-29-2007 01:08 PM

So why don't you just use some hash algorithm?

PHP Code:

<?php
function randomstr($length){
  return 
substr(md5(time()*rand(1100)), 0$length);
}
echo 
randomstr(16);
?>


Mythotical 11-29-2007 01:12 PM

Perfect, thats what I was trying to figure out last night but couldn't. You just saved me a headache Hossie. Thanks.

That link above though seemed good but alot of lines of code. Glad you made a post.

MoT3rror 11-29-2007 07:20 PM

You must not have read the first part of the page.

PHP Code:

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;


This function defines what the random characters going to be.

The second funtion.
PHP Code:

function get_rand_id($length)
{
  if(
$length>0
  { 
  
$rand_id="";
   for(
$i=1$i<=$length$i++)
   {
   
mt_srand((double)microtime() * 1000000);
   
$num mt_rand(1,36);
   
$rand_id .= assign_rand_value($num);
   }
  }
return 
$rand_id;


This function uses the characters and numbers to output a random string on letters and numbers.

Call on this to come with 16.
PHP Code:

get_rand_id(16); 


Guest190829 11-29-2007 07:27 PM

Using one of the hashing algorithms would be the most efficient solution - that is what hashing is for. :)


All times are GMT. The time now is 04:01 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01732 seconds
  • Memory Usage 1,761KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (6)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete