PDA

View Full Version : امکان داره md5 دو عبارت شبیه به هم بشه؟



theboy
چهارشنبه 22 خرداد 1392, 08:15 صبح
سلام.
من دارم رو یه سیستمی کار می کنم که کاربر ثبت نام می کنه و برای خودش آواتار انتخاب می کنه.
قصد دارم نام آواتار رو با نام md5 شده کاربر ذخیره کنم.

حالا اگر دو کاربر نام کاربریشون شبیه هم باشه امکان داره md5شدشون یکی بشه و آواتار کاربر اول پاک بشه؟
مثلا یکی theboy باشه اون یکی the boy و...

Jarvis
چهارشنبه 22 خرداد 1392, 08:36 صبح
نه امکان نداره ... اون دوتا کلمه که مثال زدید "1 کاراکتر" با هم فرق دارن ... پس MD5 این دو هیچوقت یکی نمیشه ... اگه نام های کاربری دقیقا یکسان باشند شاید ... که البته اون رو باید جلوگیری کنید.

موفق باشید

us1234
چهارشنبه 22 خرداد 1392, 09:01 صبح
اگه کارکترهایی که md5 می کنی یکی باشه قطعا کد تولید شده هم یکی میشه . ولی شما میتونید آی دی (تیبل یوزر )هر شخص را نیز با اون کارکتر ها ادغام کنی که کد منحصر بدست میاد.

theboy
چهارشنبه 22 خرداد 1392, 12:16 عصر
خیلی ممنون از دوستان خیالم راحت شد!

qartalonline
چهارشنبه 22 خرداد 1392, 13:11 عصر
بله امکان اینکه دو رشته متفاوت hash یکسان داشته باشند وجود دارد. ولی احتمالش کمه.

eshpilen
چهارشنبه 22 خرداد 1392, 22:45 عصر
استفاده از md5 برای این کاربردها یخورده خطرناک بنظر میرسه.
چون md5 در زمینهء collision ها بوده که سوراخ شده!

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

البته احتمالا اون نوع collision که ضعف این تابع درش بوده (در زمینهء توابع هش چند نوع collision داریم) از نوعی نباشه که بشه این کار رو کرد یا اینکه این کار به این راحتی نباشه و با محدودیت های شدیدی که نام کاربری داره شدنی نباشه، ولی بهرحال چرا روزهء شک دار؟

مسئله همینه که مدتهاست متخصصان و مراجع امنیت و رمزنگاری گفتن از md5 استفاده نکنید. کاربردهایی هم که داره و مشکلی ندارن شما نمیدونید و تخصصش رو ندارید و باید حداقل روش تحقیق کنید، اما بازم استفاده از md5 در هیچ کاربردی توصیه نمیشه.

پس بجای md5 از مثلا sha256 استفاده کنید. به همین راحتی! واقعا چرا روزهء شک دار؟

حتی از sha1 هم با اینکه بقدر md5 سوراخ نشده بهتره استفاده نشه. این تابع هم مدتهاست که از استاندارد خارج شده.

ali_md110
چهارشنبه 22 خرداد 1392, 23:15 عصر
سلام
همینطور که دوستمون گفتند الگورینم MD5 هک شده همچنین الگوریتم SHA1 هم هک شده و اگر برنامتون خیلی مهم هست حتی الامکان استفاده نکنید
به نظر من از الگوریتم Rijndael و AES استفاده گنید چون از امن ترین الگوریتمها هستند و برای بالا بردن ایمنی از نمک یا Salting استفاده کنید

eshpilen
پنج شنبه 23 خرداد 1392, 09:11 صبح
Rijndael/AES که الگوریتم هش نیست!

ali_md110
پنج شنبه 23 خرداد 1392, 21:12 عصر
Rijndael/AES که الگوریتم هش نیست!

اگر الگوریتم نیست پس چی هست میشه کمی توضیح بدید تا یاد بگیریم!!!!
دوست من سری بزنید به منابع ماکروسافت اونجا نوشته چی هست
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndael.aspx

MRmoon
پنج شنبه 23 خرداد 1392, 21:26 عصر
اگر الگوریتم نیست پس چی هست میشه کمی توضیح بدید تا یاد بگیریم!!!!
دوست من سری بزنید به منابع ماکروسافت اونجا نوشته چی هست
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndael.aspx

الان به اين توجه ميكنين كه اينجا تالار php هست؟

eshpilen
پنج شنبه 23 خرداد 1392, 22:50 عصر
اگر الگوریتم نیست پس چی هست میشه کمی توضیح بدید تا یاد بگیریم!!!!
دوست من سری بزنید به منابع ماکروسافت اونجا نوشته چی هست
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndael.aspx
اینکه شما ذکر کردی الگوریتم Encryption است.
صحبت ما درمورد الگوریتمهای Hash بود.