درهم سازی رمز عبور در دیتابیس

درهم سازی رمز عبور در دیتابیس

چند وقتی هست که شاهد هک شدن سایت ها و بخصوص شبکه های اجتماعی هستیم! اولین مشکلی که کاربران بعد از هک اینجور سایت ها بهش برمیخورن لو رفتن رمز اون ها هست. گاها سایت هایی را مشاهده می کنید در زمان بازیابی کلمه عبور، کلمه عبور فعلی تان را (نه کلمه عبور جدید یا لینک تنظیم کلمه عبور) برایتان ارسال می کند. این مورد گویای امنیت پایین و درهم سازی (هش | Hash) نکردن کلمه های عبور هست. احتمالا با تفاوت های اینکد کردن و هش کردن آشنا هستید. در صورتی که کلمه عبور شما با الگوریتم قوی هش بشه امکان Dehash کردن اون تقریبا برای کسی وجود ندارد. حالا شما می تونید از تابع زیر که از ترکیب دو تا الگوریتم درهم سازی درست شده استفاده کنید:

function pass_code( $pass ){
	// snippets.ir
	return sha1( md5( $pass . "a random string" ) );
}

این تابع رمز عبور کاربر را دریافت می کند و یک رشته ای (در اینجا: a random string ) را به آن الحاق می کند سپس آن را دو بار هش می کند. این یکی از ساده ترین راه های هش کردن هست! بله، راه بهتر دیگه ای هم هست. به کد زیر توجه کنید:

function pass_code( $user , $pass ){
	// snippets.ir
	return sha1( md5( $user . "a random string" . $pass ) );
}

این تابع نام کاربری (یا ایمیل) و کلمه عبور را دریافت و آن ها را با یک رشته (این رشته اختیاری است) تلفیق می کند و دو بار آن را هش می کند. یافتن کلمه عبور این کاربر از روی دایجست ساخته شده تقریبا محال است!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.