بخش مقالات آکادمی | Articles
آخرین آموزش ها

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

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

 

<?php

$password=md5($password);

//با salt

$password=md5($password.$$salt);

?>

تو این مثال از یک تابع هش معروف PHP به نام md5 استفاده شده است . این تابع امن نیست اما نه به دلیل اینکه رمز آن شکسته شده بلکه بخاطر اینکه دیتابیس های بسیار بزرگی از این هش تو اینترنت وجود دارند و با دادن هش راحت عبارت اصلی بدست می آید حتی با اینکه شما salt به پسورد اضافه کرده باشید باز هم ممکن هست با دیتابیس های بزرگی که در سطح اینترنت هست رمز شما لو برود . اما می توان برای هش کردن مطمئن از تابع crypt و تابع password_hash استفاده کرد .

توجه : برای استفاده از تابع password_hash نیاز به نسخه PHP 5.5 هست و برای تابع crypt نیاز به PHP 5 می باشد .

<?php
//هش کردن
$hashed_password = crypt($password);
//تشخیص پسورد
if(hash_equals($hashed_password, crypt($password, $hashed_password))){
echo ‘password verify’;
}
?>
تاریخ ارسال
24 خرداد 1395
ارسال شده توسط
مهندس ابراهیمی
میزان بازدید
0 نفر بازدیدکننده
0 دیدگاه
فایلی جهت دانلود وجود ندارد !
مشخصات
حجم و فرمت :

0 دیدگاه ثبت شده

شما هم نظری بدهید
هنوز دیدگاهی ثبت نشده
توجه فرمایید:
نظرات شما پس از بررسی و تایید نمایش داده می شود.
لطفا نظرات خود را فقط در مورد مطلب بالا ارسال کنید.