برگرداندن md5

NabiKAZ

Well-Known Member
هش (Hash, Hash Code, Digest, Message Digest هم نامیده می شود) را می توان به صورت اثر انگشت دیجیتالی یک داده در نظر گرفت. با این روش شما می توانید رشته ای اندازه-ثابت (fixed length) از یک داده به دست آورید که با روش های ریاضی به صورت "یک طرفه" رمزنگاری شده است. کشف رشته اصلی از رشته هش آن (عملیات معکوس) به صورت کارا تقریبا غیر ممکن است. نکته دیگر اینکه هر داده یک رشته هش شده کاملا منحصر به فرد ایجاد می کند( احتمال یکی شدن رشته های هش دو رشته متفاوت در الگوریتم MD۵ یک در ۳.۴۰۲۸۲۳۶۶۹۲۰۹۳۸۴۶۳۴۶۳۳۷۴۶۰۷۴۳۱۷۷e+۳۸ می باشد.. این خواص ، هش کردن را به روشی کارا و ایده آل برای ذخیره سازی کلمات عبور در برنامه های شما تبدیل می کند. چرا؟ برای این که حتی اگر یک نفوذگر(Hacker) بتواند به سیستم و بانک اطلاعاتی شما نفوذ کند و بخشی از اطلاعات شما را به دست آورد (شامل کلمات عبور هش شده) نمی تواند کلمات عبور اولیه را از روی آن ها بازیابی کند.
شاید از اینجا برداشت کردید: http://www.manionline.org/wp-content/hash_01.doc
به هر حال جسارتاً باید منبع رو ذکر میکردید.
 

NabiKAZ

Well-Known Member
البته نه کاملا یک دیتا بیس داره چند هزار کلمه ای که بسیار کمه !!!!
این رو اگر تونستید decode کنید : majidonline» 43364dca5499ed6dce5f12d810cda395
حالا این بزنید » apple» 1f3870be274f6c49b3e31a0c6728957f

دومی رو پیدا میکنه چون یک کلمه کاملا شناخته شده است !

بقیه سایتها هم به همین روش آزمون و خطا است و راه حل قطعی به هبچ وجه نیست !

http://md5.rednoize.com/
http://www.md5decrypter.com/
http://tools.web-max.ca/encode_decode.php



البته احتمالاً منظور شما از چندهزارتا همون چند میلیون تا بوده! سایت md5.rednoize.com حدود 50 میلیون کلمه رو در دیتابیسش داره.
بعضاً حجم این دیتابیس ها به چند صد مگ یا گیگ هم میرسه، [مثلاً اینجا]

اول درست گفتید که این سایتها محدود به دیتابیس خودشون هستند. اما درادامه با عرض معذرت به اشتباه اشاره کردید که این سایتها از آزمون خطا استفاده میکنند.
 
آخرین ویرایش:

NabiKAZ

Well-Known Member
زمان محاسبه برای apple رو زده 10 ساعت !!!!!


خیر! اینبار هم خطا کردید !
اون برنامه apple رو در کسری از زمان پیدا میکنه.
یا اینکه نوع هش رو اشتباهاً چیزی به غیر از MD5 انتخاب کردید. و یا اینکه حروف کوچک را جزو کارکترهای تولید کلمه قرار نداید. که احتمال دومی بیشتره. به دلیل اینکه این نرم افزار به صورت پیشفرض فقط حروف انگلیسی با حروف بزرگ رو مد نظر قرار میده. باید در تنظیمات تیک مربوط به حروف کوچک هم بزنید.
(الان که تصویرتون رو دیدم متوجه شدم همون حالت دومه...)


در مورد cpu usage هم که فرمودید...، باید عرض کنم که استفاده از حداکثر توان cpu موجب سریعتر رسیدن به جواب میشه که یک حُسن به حساب میاد!!

موفق باشید
 
آخرین ویرایش:

NabiKAZ

Well-Known Member
سلام دوستان نرم افزاری رو یه می ذارم برای Hash هست .
زیاد باهاش کار نکردم اما می دونم از تمامی الگوریتم های هش استفاده می کنه .


از معرفیتون ممنون. من باش کار کردم برنامه سبک، سریع ، کامل و قویی بود. دست شما درد نکنه.

ضمناً آقای "نیما.ج" یه کلاس PHP برای اینکار (brute force) نوشتند که به عنوان یه برنامه تحت وب جالبه. اونو میتونید از [اینجا] دون لود کنید.


تشکر
نبی
 
آخرین ویرایش:

NabiKAZ

Well-Known Member
این رو هم ببینید، قکر میکنم تو یکی از همین تاپیک ها دیدمش، اینم سعی و خطا کار مینکه اما رو چنتا سرور همزمان



ببخشید ها ! این جمله شما کلاً غلط بود !


ظاهراً بعضی از دوستان هنوز با اساس بازیابی هش ها مشکل دارند !
خیلی ساده بگم، دو گزینه وجود داره:
  • سعی و خطا، بدین صورته که یک دیکشنری از کلمات وجود داره و تک تک هش میشن و هش شده ها با هم مقایسه میشن... این دیکشنری ممکنه درحین مقایسات ساخته بشه که شاید سرعت کار رو پایین بیاره. اما به طور کلی این روش ممکنه بسیار زمان بر باشه. (نمونش برنامه ای که جناب milads در صفحه قبل گذاشتند به این برنامه ها اصطلاحاً brute force میگن)
  • استخراج از دیتابیس، در این حالت یه دیتابیس از تمامی کلمات به همراه معادل هش شده اونها داریم. و کلمه هش شده مورد نظر در بانک اطلاعاتی که غالباً محدوده جستجو میشه و معادل کلمه اون برگشت داده میشه. این روش به دلیل ماهیتی که بانکهای اطلاعاتی دارند بسیار سریع عمل میکنه و گاهاً در کسری از زمان نتیجه رو برمیگردونه. (نمونه این روش هم تمام سایتهایی که در صفحه گذشته دوستان معرفی کردند.)
فکر نمیکنم راه سومی وجود داشته باشه.

حالا این برنامه ای که شما آقای jhoseini قرار دادید، اینطور که من متوجه شدم سعی و خطا نیست و از روش دوم استفاده میکنه. البته از یک بانک اطلاعاتی استفاده نمیکنه و از بانک چندین سرور استفاده میکنه. البته اتصال به بانک اطلاعاتی توسط یک برنامه بیگانه غیر ممکنه و اگر اشتباه نکنم و درست متوجه شده باشم، این برنامه پارامتر هش شده رو به url خاص اون سرور ها ارسال میکنه و محتوای بازگشتی رو پردازش میکنه و از درون اون کد هش شده رو استخراج میکنه و نمایش میده. شبیه به کاری که ما با CURL روی وب میکنیم و محتوای یک سایت رو دریافت میکنیم. به همین دلیله که گاهاً میبینید در جایی که باید پسورد نمایش داده بشه تگ های html مثل <table/> ظاهر میشه !!! خب این میتونه به این دلیل باشه که اون سایتها، سایتشون رو update کردند و محتوای خروجی و برگشتی از url خاصی که برنامه پارامترها رو بهش ارسال میکنه تغییر کرده و این برنامه اشتباه میکنه.

ببخشید زیاد حرف زدم
موفق باشید
نبی
 

ARTA_ADOBE CO

Active Member
خیر! اینبار هم خطا کردید !

کماکان خطاکاریم در جوار شما استاد...
نبی جان به نظرت چرا از پیشفرض حروف بزرگ استفاده کرده در صورتی که پسورد ها بیشتر با حروف کوچیک نوشته میشوند ؟
 

memeri

Member
خوب پس اگه یه هکر اومد و دیتابیس مارو هک کرد اگه با md5 هم باشه ممکن پس رو پیدا کنه.
یعنی آدم بیاد چند بار (به صورت رندوم) هش کنه بهتره؟؟؟
 

NabiKAZ

Well-Known Member
کماکان خطاکاریم در جوار شما استاد...
نبی جان به نظرت چرا از پیشفرض حروف بزرگ استفاده کرده در صورتی که پسورد ها بیشتر با حروف کوچیک نوشته میشوند ؟
خواهش میکنم. من فقط نخواستم اطلاعات غلط به خواننده ها داده نشه.

دلیل خاصی به ذهنم نمیرسه، باید از سازندش پرسید.
 

NabiKAZ

Well-Known Member
خوب پس اگه یه هکر اومد و دیتابیس مارو هک کرد اگه با md5 هم باشه ممکن پس رو پیدا کنه.
یعنی آدم بیاد چند بار (به صورت رندوم) هش کنه بهتره؟؟؟
همینطوره!
کاری که vbulletin کرده اینه که برای هر رکورد یه فیلد در نظر گرفته و در اون یک کلمه 3 کارکتری تصادفی که از کارکترهای ویژه مثل ؟~! و ... تشکیل شده قرار داده. و کلمه هش شده رو از ترکیب پسورد و اون فیلد ساخته و ذخیره کرده.
بدین ترتیب اگر کاربر هم در پسوردش برای بالا بردن امنیت از کارکترهای ویژه استفاده نکنه، بازهم خود نرم افزار این جور کارکترها رو به پسوردش اضافه میکنه و امنیت پسورد رو بالاتر میبره.
از طرفی اگر به هر نحوی پسوردهای هش شده به دست هکر بیافته، تا زمانی که اون فیلد تصادفی رو نداشته باشه، عملاً اون هش ها به هیچ دردش نمیخوره.
 

hasanak852

Active Member
un hash

با این کد میشه هش شده هر عددی رو داد و خود عدد رو بهت میده اما فقط باید عدد باشه. باید مقدار متغیرa رو برابر کد خودتون بذارید:
PHP:
$a="8306ef53581c28ec02d9718df2347216";
$b=false;
$i=0;
while($b==false){
    $i++;
    if($a==md5($i))$b=true;
}
    echo $i; /*i=356248*/

با همین روش میشه یه برنامه نوشت که حروف و علائم رو هم ساپورت کنه.

درجواب کسانیکه میگن برای اینکار ابر کامپیوتر لازمه بگم من با سیستم خودم کمتر از 25 ثانیه یه عدد 7 رقمی رو آنهش میکنم یعنی این حلقه توی یک ثانیه حدود 400000 دور میزنه!!!

در کل یه سوال: چرا بعضیا میان تابع مینویسن توش کد هش شده رو تغییر میدن و با یه هشینگ دیگه قاطیش میکنن و... ، بعد با همین تابع پسووردو تو دیتابیس ذخیره میکنن؟
خب کسی که دیتابیس رو هک کنه نمیاد پسوورد هش شدشو آنهش کنه، اطلاعاتو به دست آورده دیگه!
 

Army.Hidden

Active Member
سلام خدمت شما
با این کاری که شما دارید میکنید رو میشه Brute Force نامگزاری کرد.
برای مثال کد زیر رو مشاهده کنید :
PHP:
‫;"‪$a = "a‬‬
‫(‪while ($a‬‬
}
‫;++‪echo $a.'<br>'; $a‬‬
‫;‪if ( $a == "zz" ) break‬‬
‫{
که یک خروجی مثل زیر به شما میدهد
a
b
c
d
.
.
.
aa
ab
ac
.
.
.
za
zb
zc
....
پسورد های هش شده رو میشه با دوصورت بروت فورس و Dic Attack بدست اورد.
وقت بیشتر توضیح دادن نیست ولی به شما و دوستان دیگه پیشنهاد میکنم سری مقالات Zac003 رو که بازی با اسکریپت ها نام داره رو بخونید
لینک دانلود
 

Masoud1365

مدیر انجمن
با همین روش میشه یه برنامه نوشت که حروف و علائم رو هم ساپورت کنه.
بحث اعداد با کاراکتر و حروف ( یا در بدترین حالت مخلوطی از 3 تاشون ) فرق داره !
در کل یه سوال: چرا بعضیا میان تابع مینویسن توش کد هش شده رو تغییر میدن و با یه هشینگ دیگه قاطیش میکنن و... ، بعد با همین تابع پسووردو تو دیتابیس ذخیره میکنن؟
خب کسی که دیتابیس رو هک کنه نمیاد پسوورد هش شدشو آنهش کنه، اطلاعاتو به دست آورده دیگه!
برای زمانی کاربرد داره که شما مثلا اینجکت شدی ! هکر فقط یوزر مدیر و یه پسورد هش شده داره ! اگر که هش نکرده باشی راحت به مدیریت لاگین میکنه و بقیه ماجرا :دی !
 

Masoud1365

مدیر انجمن
با همین روش میشه یه برنامه نوشت که حروف و علائم رو هم ساپورت کنه.
بحث اعداد با کاراکتر و حروف ( یا در بدترین حالت مخلوطی از 3 تاشون ) فرق داره !
در کل یه سوال: چرا بعضیا میان تابع مینویسن توش کد هش شده رو تغییر میدن و با یه هشینگ دیگه قاطیش میکنن و... ، بعد با همین تابع پسووردو تو دیتابیس ذخیره میکنن؟
خب کسی که دیتابیس رو هک کنه نمیاد پسوورد هش شدشو آنهش کنه، اطلاعاتو به دست آورده دیگه!
برای زمانی کاربرد داره که شما مثلا اینجکت شدی ! هکر فقط یوزر مدیر و یه پسورد هش شده داره ! اگر که هش نکرده باشی راحت به مدیریت لاگین میکنه و بقیه ماجرا :دی !
 

hasanak852

Active Member
un hash MD5

تو اینجا هر کد ام دی 5 عددی رو بدین برمیگردونه
البته فقط مال عدد باشه ها
http://bist.web44.net/11.php
کار خودمه!
به درد کسی نمیخوره فقط برای رفع تنوع!
 
آخرین ویرایش:

Masoud1365

مدیر انجمن
کرک کردن md5 یا هر تابع دیگه ای که هش کنه در حالتی که پسورد عدد باشه یا فقط حروفش کوچیک باشه یا فقط بزرگ باشه کاری نداره ! جایی کار سخت میشه که پسورد مخلوطی از همش باشه یعنی حروف کوچیک و بزرگ و عدد و کاراکترهای خاص :-?
البته تو فکرم هست که واسه کرک این پسورها هم یه چیزی بنویسم البته نه واسه هک و اینا همینجوری بنویسم :دی
 

NETSO

New Member
اگه به سایتی Inject بشه ، هکر یا به قصد Data اومده یا به قصد Script . اگر به قصد Data ها اومده باشه که نیازی به pass ادمین نداره. میتونه بین Table ها سوییچ کنه و Content مورد نظر خودش رو پیدا کنه. اگر هم به قصد فایل اومده باشه ، که میتونه تک تک فایل ها رو بکشه بیرون یا حتی Pass ادمین رو عوض کنه که البته این بستگی به نوع Db هم داره :D
در کل راه زیاده و نمیخوام وارد بحث هک و ... بشم.
کرک کردن md5 یا هر تابع دیگه ای که هش کنه در حالتی که پسورد عدد باشه یا فقط حروفش کوچیک باشه یا فقط بزرگ باشه کاری نداره ! جایی کار سخت میشه که پسورد مخلوطی از همش باشه یعنی حروف کوچیک و بزرگ و عدد و کاراکترهای خاص :-?
البته تو فکرم هست که واسه کرک این پسورها هم یه چیزی بنویسم البته نه واسه هک و اینا همینجوری بنویسم :دی
حساب کنید طرف مثلا 10 تا کرکتر از 1 تا 10 اسکی و مثلا از 220 تا 230 اسکی رو انتخاب کرده باشه. یا حتی حروف کوچیک + حروف بزرگ + عدد + Sep Char + SPACE و ...
به نظر خیلی بزرگه ؟ خیلی سخت میشه ؟ اگر تجربش رو داشته باشید ، مسلما اولین ایده ای که به ذهن افراد با تجربه میرسه ، Cloud Base و پردازش توزیعی هست . ولی راه ساده تری هم هست. کافیه که VGA GT 8800 یا بالاتر داشته باشید . سرعت پردازش GPU به مراتب از CPU ّبیشتره (در خیلی از موارد) -از BackTrack 5 هم میتونید استفاده کنید.
 

جدیدترین ارسال ها

بالا