ورود

View Full Version : سوال: تعیین کلید در پایگاه داده



Mahmoudzadeh
جمعه 12 خرداد 1391, 11:21 صبح
با سلام
پروژه من یک شبکه اجتماعی هست با زبان Php!که یه مشکلی تو انتخاب کلید برای کاربران دارم.کلید رو Email کاربران گرفتم ولی نمی خوام از طرفی ایمیل کاربران عمومی باشه! از طرفی پسورد وایمیل رو می خوام هش کنم که باز باعث مشکل میشه !چون ممکنه کاربر پسورد خود رو فراموش کنه و به پسورد جدید به ایمیل کاربر ارسال بشه بنابراین نیاز به بازیابی ایمیل هست که چون هش شده غیر ممکن هست .
از دوستان تشکر می کنم اگه پاسخ بدن.http://www.iran-eng.com/images/smilies/cry.gif

p_ooya
جمعه 12 خرداد 1391, 12:18 عصر
اگر بانک اطلاعاتی MySQL هست، چرا یه فیلد Auto Increment ایجاد نمی‌کنید؟

Mahmoudzadeh
جمعه 12 خرداد 1391, 14:53 عصر
سلام !تشکر از شما
آره دیتابیس mysql هست .Auto increment مناسب هست؟
در مورد امنیت جداول هم توضیح ندادید! برای هش کردن آنها چکار کنم؟

p_ooya
جمعه 12 خرداد 1391, 16:05 عصر
من هیچ وقت با auto increment هیچ مشکی نداشته‌ام، به نظر من گزینه بدی نیست. در مورد امنیت پسورد کاری که میشه کرد استفاده از salt (نمک!) برای هش کردن داده هست. فرض کنید شما میخواین از md5 برای ذخیره پسورد استفاده کنید. اول پسورد رو با نمک مخلوط می‌کنید و بعد اون رو هش می‌کنید. این مخلوط کردن
می تونه به طرق مختلف اتفاق بیافته. مثلاً شما اول پسورد رو در بخشی از سالت قرار میدید (یا برعکس!) و بعد هش می‌کنید (و امثلا اینها). به عنوان مثال به جای استفاده از

hash = md5(password)
از این استفاده کنید:

hash = md5('salt' + password)



حالا سوالی که پیش میاد اینه که سالت مناسب چیه؟ ایمیل، کلید اصلی، یا دیتاهای مشابه سالت مناسبی هستند. پیشنهاد می‌کنم یه نگاه به لینک زیر بندازید:
http://stackoverflow.com/questions/5482437/md5-hashing-using-password-as-salt