PDA

View Full Version : برگرداندن مقدار اصلی بعد از hash کردن



AmirAlimadadi
دوشنبه 02 دی 1387, 12:18 عصر
با سلام، این موضوعی که می خوام بگم شاید به نظر تکراری باشه ولی من هر چی گشتم نتونستم جواب خوبی برای سوالم پیدا کنم.
من یه جدول توی پایگاه داده دارم، توی اون جدول نام کاربران و کلمه عبور اونا هست، کلمه عبور با استفاده از MD5 به یه رشته تبدیل(Hash) شده، من می خوام بعد از انجام عملیات hash کردن، مقدار اون واقعی رو بدونم.
ممنون از کمکتون

Amir Oveisi
دوشنبه 02 دی 1387, 12:24 عصر
غیر ممکنه دوست عزیز!
الگوریتم hash کاملا یک طرفه است و قابل برگشت نیست واسه همین هم hash میکنیم چون نمیخوایم مقدار واقعیش قابل تشخیص باشه

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

AmirAlimadadi
دوشنبه 02 دی 1387, 13:07 عصر
خوب برای رفع مشکل من چه چیزی پیشنهاد می کنین؟؟

mehdi.mousavi
دوشنبه 02 دی 1387, 13:44 عصر
خوب برای رفع مشکل من چه چیزی پیشنهاد میکنین؟؟

سلام.
ورودی کاربر رو Hash کنید و با مقدار Hash ای که در بانک نگه داشته اید، مقایسه کنید. اگه یکی بود، یعنی Password درست وارد شده. در این روش، Password Recovery وجود نداره و فقط میتونید Reset Password کنید، با این ترتیب که بر اساس نیاز کاربر، لینکی رو برای اون ارسال کنید تا بتونه PWD خودش رو به مقدار جدید Reset کنه.

Mehdi Asgari
دوشنبه 02 دی 1387, 14:42 عصر
در مورد این کار به خصوص روش mehdi6755 رو دنبال کن ، اما اگه واقعا نیاز به reverse کردن MD5 داری ، راه هایی هست:
http://www.hashcrack.com/index.php
http://en.wikipedia.org/wiki/Rainbow_table
http://reversehash.info/hash/reverse/

mehdi.mousavi
دوشنبه 02 دی 1387, 15:23 عصر
در مورد این کار به خصوص روش mehdi6755 رو دنبال کن ، اما اگه واقعا نیاز به reverse کردن MD5 داری ، راه هایی هست:
http://www.hashcrack.com/index.php
http://en.wikipedia.org/wiki/Rainbow_table
http://reversehash.info/hash/reverse/

سلام.
بهتره این رو هم ذکر کنید که در برخی شراط روش Brute Force ممکنه به چندین میلیون سال زمان نیاز داشته باشه تا بتونه PWD رو Recover کنه. تازه اگر از Salt Value برای Generate کردن PWD استفاده شده باشه، *تقریبا* میشه گفت این روشها هرگز به جواب نمیرسن.
گذشته از اینها، ایشون دارن برنامه رو Develop میکنن، خوب اگه نیازه که دوباره PWD رو Recover کنن، اصلا نباید از الگوریتمهای یک طرفه استفاده کنن. در چنین شرایطی، Hash کردن اطلاعات صحیح نیست!

پاورقی: من به یه ایده عجیب برخوردم، که نوشته MD5 یه الگوریتم دو طرفه هستش و به اشتباه گمان میشه که یک طرفه هست! میتونید کل مطلب رو اینجا بخونید (http://www.criticalsecurity.net/index.php?showtopic=30819&st=20&p=207385&#entry207385).

Mehdi Asgari
دوشنبه 02 دی 1387, 18:09 عصر
بهتره این رو هم ذکر کنید که در برخی شراط روش Brute Force ممکنه به چندین میلیون سال زمان نیاز داشته باشه
این ها از پایگاه داده استفاده می کنن ، نه بروت فورس

Amir Oveisi
دوشنبه 02 دی 1387, 18:27 عصر
فرقی نمیکنه به هر حال از چی استفاده کنند
reverse کردن hash غیر ممکن نیست ولی خیلی سخته و زمان زیادی میخواد
مثلا برای SHA-2 ممکنه چند سال زمان احتیاج بشه!

linux
دوشنبه 02 دی 1387, 22:36 عصر
خوب برای رفع مشکل من چه چیزی پیشنهاد می کنین؟؟
چرا می خواهی امنیت دیتابیست را به خطر بندازی ، چون اگر بخواهی دیتا را اینکریپت کنی که بعدا دیکریپت بکنی بر اساس الگوریتمهای متقارن یا نامتقارن باید کلید تولید کنی و جایی ذخیره کنی که احتمال لو رفتنش هست.

mehdi.mousavi
سه شنبه 03 دی 1387, 13:16 عصر
این ها از پایگاه داده استفاده می کنن ، نه بروت فورس

سلام.
یکی از گونه های Brute Force، ترکیب روش مزبور با روش Dictionary Attack هست. جدول Rainbow نیز، جزء حملات ساده brute-force محسوب میشه که نتایجش در یک جدول ذخیره میشن!

پاورقی: در مورد Brute-Force بیشتر مطالعه کنید.

Mehdi Asgari
سه شنبه 03 دی 1387, 15:18 عصر
درسته ، ولی معمولا هش ها رو precompute کرده و در دیتابیس ذخیره می کنن.