PDA

View Full Version : سوال: نحوه ايجاد كد رهگيري



هادی2020
شنبه 30 شهریور 1387, 18:47 عصر
نحوه ايجاد كد رهگيري را براي سايتي مي خوام كه اقدام به فروش مي كنه ؟

hamid67fathi
شنبه 30 شهریور 1387, 20:25 عصر
خوب ميتونی با استفاده از رندوم و چند تا فرمول ساده اين کار رو بکنی
بد تو ديتا بيس ذخيره کنيش

هادی2020
شنبه 30 شهریور 1387, 23:07 عصر
مي توني چند تا مثال بزني اگه يكي از مثالهات هم مخلوطي از اعداد و حروف باشد ممنون مي شم
يه توضيح هم در رابطه با يكي از مثال هات بده

seven7777777
یک شنبه 31 شهریور 1387, 00:05 صبح
سلام
دوست من برای راحتی کار معمولا در این موارد برای کدشون یک قالب خاص انتخاب می کنند مثلا s83m10r25 که در آن s m r و اعداد 83 و 10 و 25 بصورت تصادفی انتخاب شده اند اما جای آنها در کد ثابت است .
یا مثلا کد a246082 که در آن حرف a و عدد 2 آخر ثابت هستند و اعداد وسط شانسی ولی همواره زوج هستند .
اما در صورتی که بخواهید یک کد بسیار امنیتی را تولید کنید باید هم طول کد شما متغیر باشد و هم تک تک کاراکتر های آن به طور شانسی انتخاب شوند . برای این کار براحتی می توانید از توابع رندم سازی استفاده کنید .

vahid4134
یک شنبه 31 شهریور 1387, 11:01 صبح
بهترین کار این هست که میکروتایم اون لحظه رو بگیری و مثلا sha1 تبدیل کنی. اینجوری کارت خیلی راحتتر میشه. خوبی این کار این هست که امکان نداره دو کد رهگیری مثل هم به وجود بیاد

هادی2020
یک شنبه 31 شهریور 1387, 14:09 عصر
يه مثال مي خواستم

hamid67fathi
یک شنبه 31 شهریور 1387, 14:43 عصر
اينم يه مثال :




<?php
function char_rand(){
$char = array(1=>"A",2=>"B",3=>"c",4=>"d",5=>"E");
$rnd = rand(1, 5);
$char_rnd = $char[$rnd];
echo $char_rnd;
}

$char = rand() .char_rand().rand().char_rand();
echo $char;
?>



اگه سؤالی بود بپرس

narsic
یک شنبه 31 شهریور 1387, 16:28 عصر
با سلام
دوست عزیز این کد ویرایش شده ی کد دوستمونه فک کنم این بهتر غمل کنه


<?php
function char_rand(){
$char = array(1=>"s",2=>"d",3=>"T",4=>"B",5=>"n");
$rnd = rand(1, 5);
$char_rnd = $char[$rnd];
return $char_rnd;
}

$char =rand(255, 455) .char_rand().rand(12,235).char_rand();
echo $char;
?>

narsic
یک شنبه 31 شهریور 1387, 16:31 عصر
نمونه کد قدیمی


AE164356505



نمونه کد بعد از ویرایش


342n30d

hamid67fathi
یک شنبه 31 شهریور 1387, 18:18 عصر
دوستمون درست ميگه بهتره که برايه rand محدوده تعيين کنی .
اما چرا کارکتر هاش عوض شد ؟؟
برايه بيشتر کردن حروف يا پيچيده تر کردنش ميتونی اعضا آريه
را بيشتر کنی و محدوده rand تابع char_rand رو به تعداد عضو های آرايه تغيير بدی !!!!

vahid4134
یک شنبه 31 شهریور 1387, 18:23 عصر
امکان این وجود نداره که دو کد رهگیری مثل هم به وجود بیاد؟

farshad_persia
یک شنبه 31 شهریور 1387, 19:35 عصر
می‌شه گفت امکانش خیلی‌ خیلی‌ کمه اما خوب ممکنه
که البته میتونی‌ با UNIQUE کردن فیلدی که تو دیتا بیس میخوای این کد رو توش بدی بگی‌ که در صورتی‌ که کد تکراری بود قبول نکنه

narsic
یک شنبه 31 شهریور 1387, 22:47 عصر
دوستمون درست ميگه بهتره که برايه

rand محدوده تعيين کنی .
اما چرا کارکتر هاش عوض شد ؟؟
برايه بيشتر کردن حروف يا پيچيده تر کردنش ميتونی اعضا آريه
را بيشتر کنی و محدوده rand تابع char_rand رو به تعداد عضو های آرايه تغيير بدی !!!!



دوست عزیز اگه به دوتا کد دقت کنی مخصوصا قسمت تابع توافت کدهای من و خودتون رو متوجه میشی .
من فقط محدوده تعیین نکردم در کد شما هربار که تابع فراخوانی میشد یک حرف بدست میومد که درپایان اون حرف چاپ میشد همین طور که میبینید دوبار تابع فراخوانی میشد سپس دوحرف چاپ میشد و این دوحرف در آرایه اصلی قرار نمیگیرن پس نمیتونن بین اعداد چاپ شن اما من اومم و نتیجه تابع رو بازگشت دادم به رشته و در نهایت کل رشته حاصل رو چاپ کردم .
موفق باشید

narsic
یک شنبه 31 شهریور 1387, 22:50 عصر
امکان این وجود نداره که دو کد رهگیری مثل هم به وجود بیاد؟
امکانش خیلی کمه اما برای اطمینان میتونید تعداد اعضای آرایه رو بیشتر کنید کوچیک و بزرگ .
من تاحالا به دوعدد مشابه برنخوردم با این که درسایتهای مختلف هم ازش استفاده کردم .
موفق باشید

vahid4134
دوشنبه 01 مهر 1387, 15:11 عصر
sha1(time())
این احتمالش کمتره


sha1(microtime(true))

فکر کنم دیگه با این کد امکانش صفر بشه

ealvandi
دوشنبه 01 مهر 1387, 18:55 عصر
چرا خودتونو به دردسر میندازید . بهترین راه به نظر من استفاده از یک فیلد autonumber هست .

نه تکراری ! نه پیچیده و نه احیاجی به کد زنی برای تهیه