0

بررسی توابع PHP

 
sahel_007
sahel_007
کاربر نقره ای
تاریخ عضویت : شهریور 1388 
تعداد پست ها : 353
محل سکونت : ایران زمین

تابع md5 ، تابع هش کردن یک رشته
شنبه 24 تیر 1391  4:08 PM

تابع md5 : این تابع یک رشته را گرفته و هش می کند. یعنی رشته را به صورت یک طرفه و نامتقارن و غیر قابل decode تبدیل می کند. و برای هش کردن کلمه های عبور در بانک اطلاعاتی استفاده می شود از لحاظ امنیتی این تابع را نمی شود دیکد کرد ولی اگر کسی برنامه ای نوشته و تمام کاراکترهای مثلا 8 رقمی را با این تابع هش کند و معادل آن را هم ذخیره کند سپس می تواند با پسوردی که قبلا هش شده مقایسه کند و معادل آن که قبلا ذخیره کرده را پیدا کند ولی این روش برای کلمه های عبور ساده جواب می دهد و بخصوص اگر تعداد کاکترهای رمز عبور از 8 بیشتر باشد خیلی سخت و گاهی غیر ممکن می شود.

البته روشهای برای حل این مشکل وجود دارد مثلا یک کلمه ثابت بی معنی به کلمه عبور اضافه سپس هش کنید یا چند بار هش کنید.

 

مثال :

 

<?php

$str = "Hello";
echo md5($str);

if (md5($str) == '8b1a9953c4611296a827abf8c47804d7')
  {
      echo "<br />Hello world!";
  }

?>

خروجی :

 

8b1a9953c4611296a827abf8c47804d7
Hello world!

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

لازم به این نکته اشاره کنم که هر کلمه و رشته ای معادل هش شده ای یکتای دارد مثلا معادل هش شده Hello همیشه برابر 8b1a9953c4611296a827abf8c47804d7 است.

 

تشکرات از این پست
دسترسی سریع به انجمن ها