• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تولید کد امنیتی 5 کاراکتری یکتا
#1
سلام بر همگی
به یه الگوریتم تولید کد امنیتی 5 کاراکتری یکتا که تنها از اعداد تشکیل شده باشه احتیاج دارم
کسی می تونه کمکم کنه ؟؟؟
  پاسخ
تشکر شده توسط :
#2
دقیقا برای چه کاری میخوای ؟؟ چرا یکتا بودنش برات مهم هستش ؟؟
چیزی که به ذهن من میرسه زمان و ساعت هستش برای یکتا بودن ... در حالت کلی اما اگه بگی دقیقا برای چه کاری میخوای شاید بشه بهتر کمک کرد.

در ضمن اگه میخوای 5 تا عددی که میاد یکتا باشه از این کد میتونی استفاده کنی ...

کد پی‌اچ‌پی:
$input = array('1''2''3','4','5','6','7','8','9');
shuffle($input);
$rand1 $input[0];
$rand2 $input[1];
$rand3 $input[2];
$rand4 $input[3];
$rand5 $input[4];
echo 
"$rand1$rand2$rand3$rand4$rand5"
  پاسخ
تشکر شده توسط : restles20
#3
(۱۳۹۵ خرداد ۰۳, ۰۷:۲۸ ق.ظ)kiarash_kcm نوشته: در ضمن اگه میخوای 5 تا عددی که میاد یکتا باشه از این کد میتونی استفاده کنی ...

کد پی‌اچ‌پی:
$input = array('1''2''3','4','5','6','7','8','9');
shuffle($input);
$rand1 $input[0];
$rand2 $input[1];
$rand3 $input[2];
$rand4 $input[3];
$rand5 $input[4];
echo 
"$rand1$rand2$rand3$rand4$rand5"

این راحت تر نیست؟
کد پی‌اچ‌پی:
<?php
echo rand(1000099999);
?>

به این هم یه نگاهی بنداز:
کد:
http://php.net/manual/en/function.uniqid.php
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : restles20
#4
نقل قول:این راحت تر نیست؟
کد پی‌اچ‌پی:
<?php
echo rand(1000099999);
?>

راحت تر هست اما اعداد تکراری داره توش ... ایشون یه 5 رقمی یکتا میخواست که اگه درست متوجه شده باشم یه عدد 5 رقمی بدون تکرار اعداد مشابه.
  پاسخ
تشکر شده توسط : restles20
#5
یه عدد 5 رقمی از 10000 تا 99999 که در هر دفعه فقط یکی تولید بشه
یعنی زمانی که عدد 13567 تولید شد دیگه این عدد تولید نشه

آقای مولانا دستور rand امکان تکرار یک عدد رو داره درسته ؟؟؟
  پاسخ
تشکر شده توسط :
#6
(۱۳۹۵ خرداد ۰۴, ۰۱:۰۳ ق.ظ)restles20 نوشته: یه عدد 5 رقمی از 10000 تا 99999 که در هر دفعه فقط یکی تولید بشه
یعنی زمانی که عدد 13567 تولید شد دیگه این عدد تولید نشه

آقای مولانا دستور rand امکان تکرار یک عدد رو داره درسته ؟؟؟

فکر کنم احتمالش یک به ۸۹۹۹۹ باشه
اگه میخای تکراری نباشه بریزش توی یه جایی و هربار چک کن ببین تو لیستت هست یا نیست
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : restles20
#7
با سلام
دوستان php خودش این مسئلرو حل کرده دیگه
کد پی‌اچ‌پی:
function randomGen($min$max$quantity) {
    
$numbers range($min$max);
    
shuffle($numbers);
    return 
array_slice($numbers0$quantity);
}

print_r(randomGen(0,10000,99999)); 

تابع ( ) array_slice ، بخش تعیین شده ای از آرایه را جدا کرده و در خروجی برمی گرداند یعنی اینکه هم ورودی به شکل ارایه هست هم خروجی
سینتکسش به این شکل هستش
کد پی‌اچ‌پی:
array_slice(وضعیت ذخیره اندیس,طول جدا کردن,اندیس شروع آرایه,نام آرایه
مشخصه اول : نام آرایه ورودی
 
مشخصه دوم : نقطه شروع برش، اگر مثبت باشد از اول شروع مي شود و اگر منفي باشد از آخر آرایه.
 
مشخصه سوم : تعداد خانه های از آرایه که باید جدا شود.
 
مشخصه چهارم : و بالاخره مهمترین مشخصه،  دو حالت true , false دارد که پیش فرض false است و اگر true باشد مقدار اندیسی که در آرایه ورودی دارد را برای آرایه خروجی در نظر می گیرد. مثلا اگر اندیس یک خانه آرایه 5 باشد در آرایه جدید هم همین اندیس را خواهد داشت ولی در غیر این صورت اندیس های آرایه خروجی از صفر شروع می شود.
در این صورت اندیس ورودی اگر در خروجی باشد را چاپ نمیکندو...(یعنی بدون تکرار )
عیبش اینه که مثلا عددی بین 1 تا 20 روفقط به صورت رندوم و بدون تکرار تولید میکنه
مثل تابع رندوم نیس که امکان داشته باشه طول رشته هم عوض بشه
  پاسخ
تشکر شده توسط : restles20


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان