0

بررسی توابع PHP

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

تابع crypt ، تابع هش رشته با salt (نمک)
دوشنبه 26 تیر 1391  1:41 PM

تابع crypt : این تابع مانند دو تابع قبلی یعنی md5 , sha1 هش روی رشته را انجام می دهد با این تفاوت که برای اینکه امنیت بیشتر از salt (نمک) استفاده شده است.

دارای دو آرگومان است اولی، رشته ورودی و دومی، salt یا رشته ثابت که به رشته اضافه شده سپس هش انجام می شود.

Salt (نمک):

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

این رشته تصادفی اضافه شده به پسورد را Salt می گویند که باعث پیچیدگی کلمات عبور می شود و امنیت آنها را بالا می برد در این روش 4096 نوع هش از یک پسورد می توان ایجاد کرد و به همین دلیل پیدا کردن پسورد سخت می شود ولی باز هم امنیت کامل ایجاد نمی شود.

ساختار:

 

crypt(string , salt)

مثال :

<?php

// تعريف کلمه عبور
$password = "mypass";

// تعريف نمک
$salt = "secured";

// رمزگذاري کلمه عبور با تابع
// result: seBgtAkJR1wIw

$cipher = crypt($password, $salt);
echo $cipher;

?>

خروجی :

 

seBgtAkJR1wIw

ابتدا کلمه عبور و salt تعرف شده و با تابع رمزگذاری شده و مقدار هش شده چاپ می شود. برای امنیت بیشتر بهتر است که salt را به صورت تصادفی برای هر کلمه عبور در نظر بگیریم سپس مقدار تصادفی salt را برای بازیابی و مقایسه در بانک برای هر رکورد ذخیره کنیم.

 

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