PDA

View Full Version : ذخیره پسورد در دیتابیس



mohammad-gh
سه شنبه 08 اسفند 1391, 18:42 عصر
با سلام
تا به حال برای ذخیره کلمه های عبور از رمز گذاری MD5 استفاده می کردم
برای امنیت بیشتر هم دوبار اون رو MD5 می کردم

به تازگی متوجه شدم که این رمز گذاری به تنهایی جوابگوی امنیت نیست

به نظر شما برای امنیت رمز های دیتابیسم چه کارهایی باید انجام دهم و به چه صورتی در بانک اطلاعاتی ذخیره کنم

pirmard66
سه شنبه 08 اسفند 1391, 23:07 عصر
لینک زیر رو ببین...!

لینک مفید
(http://barnamenevis.org/showthread.php?385035-%DA%A9%D8%AF-%D8%A7%D9%85%D9%86%DB%8C%D8%AA%DB%8C-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D9%85%D9%86-%D8%A7%D9%85%D9%86-%D8%A7%D8%B3%D8%AA%D8%9F%D8%9F%D8%9F&p=1704651#post1704651)
من برای پسورد هام از کدهایی که خودم ساختم استفاده میکنم!!!


Good Luck

2undercover
چهارشنبه 09 اسفند 1391, 14:59 عصر
کاری که من میکنم:


$password='123456';
$password=hash('sha512','You Cant Read This').$password.hash('sha512','You Cant Crack This');
for($hash_loop=1;$hash_loop<=256;$hash_loop++)
{
$password=hash('sha512',$password);
}
echo $password;


که کرک کردنش خیلی کار سختیه!

omidabedi
چهارشنبه 09 اسفند 1391, 15:14 عصر
ببینید خود هش MD5 یک تابع غیر بازگشتیه و کاملا امن اصلا نیاز نمیبینم که بخواییم خودمون یک سیستم incoding بسازیم
یک نکته دیگه این که سیستمی که شما ساختید میتونن نرم افزار بنویسند و سریع بدستش بیارن.
اینگونه سیستم های اینکدینگ را به قدری با دقت و حساب شده طراحی میکنند که در سطح جهانی قابل استفاده است و هنوز هیچ کسی نتونسته تابع رو بدست بیاره
حالا شما میخواید با همچین کاری از پسورد هاتون محافظت کنید.
بهتر الکی وقت خودتونو نگیرید از همون سیستم ها استفاده کنید.
البته نظر منه

eshpilen
چهارشنبه 09 اسفند 1391, 18:46 عصر
اولا که md5 و sha1 دارای ضعفهای امنیتی جدی میباشند.
برای کاربردهای جدید از استفاده از این دو الگوریتم حتی الامکان اجتناب کنید؛ بجاشون میتونید مثلا از sha256 استفاده کنید.
دوما md5 و sha1 برای هش پسورد طراحی نشدن. هش پسورد یک کاربرد خاصی هست که نیاز به الگوریتم مخصوص خودش داره.
md5 و sha1 طوری طراحی شدن که سرعت اجرای اونا بسیار بالاست و میشه براحتی در سخت افزار و بصورت موازی اونا رو پیاده سازی کرد، و این ویژگیها دقیقا عکس چیزی است که یک الگوریتم هش پسورد باید داشته باشه.

الگوریتم هش پسورد حرفه ای باید شامل اینها باشه: سالت رندوم، سالت ثابت، key stretching.
یک نمونه از چنین الگوریتمی: http://www.hamidreza-mz.tk/?p=519
البته از این الگوریتمی که بنده نوشتم بازم حرفه ای تر هست، ولی فکر میکنم همینش هم خیلی حرفه ای تر از روشهای معموله و بنظرم درحال حاضر کفایت میکنه.
الگوریتم مخصوص و فوق حرفه ای اگر میخواید، bcrypt و scrypt که البته scrypt یک سر و گردن بالاتره.
البته سالت ثابت رو خودتون باید به این الگوریتم ها اضافه کنید.
اگر سردر نمیارید که چی میگم، پس از همون الگوریتمی که بنده طراحی کردم استفاده کنید!

mohammad-gh
جمعه 11 اسفند 1391, 20:18 عصر
باسلام
من تصمیم گرفتم از اسکریپت دوستمون eshpilen (http://barnamenevis.org/member.php?148005-eshpilen) استفاده کنم

میشه کمی راهنمایی کنید که اگر من با این روش در دیتابیس دخیره کردم و خواستم موقع لاگین اون رو چک کنم این تابع چطور چک میکنه
چون برای هر بار اجرا یک هش منحصر بفرد تولید می کنه و چطوریه می شه هش تولیدی رو با اونیکه تو دیتابیس هست مقایسه کرد

ممنون از همه