PDA

View Full Version : سوال: ساخت کد تصادفی منحصر به فرد با تعداد کارکتر مشخص در php



amin7x
شنبه 18 مهر 1394, 22:58 عصر
سلام
میخواستم بدونم چطوری میشه یک کد تصادفی منحصر به فرد با تعداد کارکتر مشخص توی php نوشت؟
و یک سوال دیگه چطور میشه این کد رو جوری نوشت که نتونند الگوریتم تولیدش رو حدس بزنند؟
ممنون

H:Shojaei
شنبه 18 مهر 1394, 23:07 عصر
این چطوره:


function getRandomString($length = 8) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM NOPQRSTUVWXYZ';
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= $characters[mt_rand(0, strlen($characters) - 1)];
}

return $string;
}
echo getRandomString(12);

kabootar_y
شنبه 18 مهر 1394, 23:38 عصر
بستگی داره بخوای طول کد چند حرف باشه؟ فقط عددی باشه یا حروف هم داشته باشه
چون گفتی کسی الگوریتمش رو هم نتونه حدس بزنه و منحصر به فرد هم باشه امیدوارم کد زیر به دردتون بخوره





function unique_rand_num(){ $time = time(); $c1 = substr($time, -1, 1); $c2 = substr($time, -3, 1); $c3 = substr($time, -5, 1); $c4 = substr($time, -7, 1); $output = $c2.$c1.$c2.$time.$c4.$c3.$c1; return $output;}

rezaonline.net
یک شنبه 19 مهر 1394, 01:39 صبح
function randomChar($max=8 , $salt='')
{
$max = (int) $max ;
static $q;
if(empty($q))
$q = uniqid();

$str = $q . $salt . time() . mt_rand(1,80). $max . $_SERVER['REMOTE_ADDR'] .microtime(true).uniqid();
$random = md5($str);
for(;;)
{
$random .= md5($random);

if(strlen($random) >= $max)
break;
}
return substr($random , 0 , $max);
}


// echo randomChar(10);

hsgpro
یک شنبه 19 مهر 1394, 11:36 صبح
سلام
بین اساتید اظهار نظر کردن سخته اما من اینو تو اینترنت پیدا کردم نوشته بود امن ترین روشش هست.
تعداد کاراکتر رو به جای اون 16 هر چی بزنی دو برابر تولید میکنه یعنی الان رو 16 هست 32 کاراکتر تولید میکنه.



<?php
echo bin2hex(openssl_random_pseudo_bytes(16));