تولید کلمه عبور تصادفی در PHP

منتشرشده: آوریل 9, 2008 در برنامه نویسی و توسعه وب, دنیای کامپیوتر, زبان PHP
برچسب‌ها:, ,

یکی از اصول ساده امنیتی که رعایت کردن اون کمک به سزایی در ارتقا سطح امنیتی وب سایت میکنه، تولید کلمه عبور تصادفی در مواقع نیاز هست. به عنوان مثال اگر شما از توابع رمزگذاری یکطرفه همچون MD5 برای ذخیره کردن کلمه های عبور استفاده کرده باشین در هنگامی که کاربر کلمه عبورش رو فراموش میکنه و درخواست دریافت مجددش رو میکنه می تونین با بهره گیری از این تابع یک کلمه عبور تولید شده تصادفی که فاکتور های امنیتی درش رعایت شده رو تولید کنید و برای کاربر ارسال کنید. و اما کد تابع مورد نظر ما:

<?php

function make_password($num_chars) {
if ((is_numeric($num_chars)) &&
($num_chars > 0) &&
(! is_null($num_chars))) {

$password = »;
$accepted_chars = ‹abcdefghijklmnopqrstuvwxyz1234567890›;

// تغذیه کردن مولد پسورد که در نسخه های قدیمی پی اچ پی مرسوم هست
srand(((int)((double)microtime()*1000003)) );

for ($i=0; $i<=$num_chars; $i++) {
$random_number = rand(0, (strlen($accepted_chars) –1));
$password .= $accepted_chars[$random_number] ;
}

return $password;
}
}
?>

همون طور که مشخص هست این تابع نیاز به یک پارامتر ورودی داره که وظیفش مشخص کردن طول رشته کلمه عبور تولیدی هست. وقتی که تابع مقدار طول رشته رو دریافت میکنه ابتدا اون رو بررسی میکنه که مقداری عددی و بزرگتر از صفر باشه. در ادامه متغیر password$ اماده سازی میشه. پس از اون بازه حروف و اعداد توسط متغیر accepted_char$ تعریف میشه که در نهایت مولفه های کلمه عبور تولیدی از بین همین موارد انتخاب خواهند شد. شما می تونین موارد دلخواه خودتون از جمله حروف بزرگ لاتین و سایر کاراکتر ها رو به این رشته اضاف کنید.

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

Advertisements

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s