ROB BOWDEN راب: من هستم، و بیایید ترک خوردگی. پس از تنظیمات pset به یاد داشته باشید که ما قصد داریم به نیاز به استفاده از عملکرد دخمه. برای مرد، ما دو هش تعریف _xopensource. آیا در مورد اینکه چرا نگران نباشید ما نیاز به انجام این کار. و همچنین هش عبارتند از: unistd.h. پس یک بار که از راه، اجازه دهید رسیدن به برنامه واقعی. اولین چیزی که ما باید انجام دهیم این است مطمئن شوید کاربر وارد یک رمزگذاری معتبر رمز عبور در خط فرمان. به یاد داشته باشید که این برنامه قرار است به مانند نقطه بریده بریده کرک اجرا می شود، و پس از آن رشته های رمزگذاری شده. بنابراین در اینجا ما در حال چک کردن مطمئن شوید که تعداد آنها به دو اگر ما می خواهیم با این برنامه ادامه خواهد داد. اگر تعداد آنها دو نیست، این بدان معناست که یا کاربر وارد رمزگذاری نشده رمز عبور در خط فرمان، و یا آنها وارد بیش از فقط رمزگذاری رمز عبور در خط فرمان، که در آن مورد ما نمی دانیم که چه چیزی برای انجام با آرگومان های خط فرمان. بنابراین اگر تعداد آنها دو بود، ما می توانیم ادامه خواهد داد. و در اینجا، ما قصد داریم به اعلام یک متغیر های رمزگذاری شده. که فقط به نام مستعار اصلی argv1 به طوری که در سراسر این برنامه، ما لازم نیست به تماس آن argv1، که پس از آن شما باید به فکر می کنم در مورد آنچه که در واقع به معنای. پس در نهایت، ما می خواهیم به اعتبار که رمز عبور رمز کاربر وارد می توانست واقع شده است رمز عبور رمز شده. میانگین پستها در طول صفحه مرد دخمه، رمز عبور رمزگذاری شده باید 13 باشد حرف طولانی باشد. در اینجا، توجه کنید که ما هش تعریف طول رمزگذاری عنوان 13. بدین ترتیب ما فقط مطمئن شوید که طول رشته های رمزگذاری شده رمز عبور 13 است. و اگر آن را نداشته باشند، ما می خواهیم برای خروج از برنامه. پس یک بار که از راه، ما می توانیم در واقع در حال حاضر سعی کنید برای پیدا کردن آنچه که رمز عبور است که به رمزگذاری رمز عبور بود. در اینجا، ما می خواهیم برای گرفتن نمک از رمز عبور رمز شده است. به یاد داشته باشید، در هر صفحه مرد، که دو حرف اول از رمزگذاری رشته، اینجا را دوست دارم - 50ZPJ و به همین ترتیب - دو کاراکتر اول را ما نمک است که مورد استفاده قرار گرفت در تابع دخمه. و در اینجا، ما می بینیم که نمک در هکتار بود. بنابراین ما می خواهیم برای کپی کردن دو مورد اول شخصیت، طول نمک مخلوط تعریف شده به عنوان دو. ما باید برای کپی کردن دو کاراکتر اول به این آرایه، نمک. توجه داشته باشید که ما نیاز به طول نمک به همراه یکی، از آنجایی که ما هنوز هم نیاز به یک تهی نابودگر در پایان نمک ما. سپس ما قصد داریم برای اعلام این آرایه، مهمان عزیز، از حداکثر طول اندازه به علاوه یک، که در آن حداکثر طول هش تعریف شده است به عنوان هشت، از حداکثر رمز عبور هشت کاراکتر است. و ما قصد داریم به استفاده از این تکرار بیش از همه رشته ها ممکن است که می تواند شود کلمات عبور معتبر است. بنابراین اگر شخصیت های معتبر در رمز عبور فقط یک، ب، و ج، و سپس ما بیش از یک تکرار، B، C، AA، با، حدود، و به همین ترتیب، تا زمانی که ما برای دیدن cccccccc - هشت ج. و اگر ما را معتبر نمی رمز عبور، پس ما نیاز به گفتن نیست که رشته های رمزگذاری شده نبود معتبر برای شروع با. بنابراین در حال حاضر، ما این رسیدن در حالی که 1 حلقه. توجه کنید که بدان معنی است که یک حلقه بی نهایت است. توجه کنید در هیچ بیانیه استراحت وجود دارد در داخل این حلقه بی نهایت است. وجود دارد تنها به اظهارات بازگشت. پس ما در واقع هرگز انتظار برای خروج از حلقه. ما فقط انتظار برای خروج از برنامه. من این بیانیه چاپ به اضافه شده بالای این حلقه را به نسخه قابل چاپ کردن چه حدس می زنم در حال حاضر ما در رمز عبور چی است. در حال حاضر، آنچه که این حلقه انجام می دهند؟ این حلقه بیش از تمام رشته ها امکان پذیر است است که می تواند کلمه عبور معتبر. اولین چیزی که ما قصد انجام است را حدس فعلی ما برای چه رمز عبور است. ما نمک است که ما از برداشت می گیرم رشته های رمزگذاری شده، و ما رفتن به رمز در آوردن حدس می زنم. با این کار ما حدس رمز، که ما قصد داریم برای مقایسه با رشته رمز شده که کاربر در خط فرمان وارد می شود. اگر آنها یکسان هستند، که در این صورت رشته قابل مقایسه صفر باز خواهد گشت، اگر آنها همان هستیم، پس حدس می زنم رمز عبور تولید شده است که رمزگذاری شده رشته، که در این صورت ما می توانیم نسخه قابل چاپ که به عنوان رمز عبور و بازگشت ما. اما اگر آنها یکسان نیست، که به معنی حدس ما اشتباه بود. و ما می خواهیم به تکرار به حدس معتبر بعدی. به طوری که چه این در حالی حلقه تلاش برای انجام. آن را به تکرار حدس ما به حدس معتبر بعدی. توجه کنید که وقتی می گوییم که شخصیت خاص در حدس ما حداکثر نماد، که تا اینجا رسید هش تعریف شده است به عنوان یک تیلدا، از که بزرگترین شخصیت ارزش ASCII که کاربر می تواند در را وارد کنید صفحه کلید، زمانی که شخصیت می رسد حداکثر نماد، پس از آن ما می خواهیم به ارسال آن را به حداقل نماد پشت، که فضا است، باز هم کمترین ASCII نماد ارزش که کاربر می تواند در صفحه کلید را وارد کنید. بنابراین ما قصد داریم به مجموعه ای که به حداقل نماد. و پس از آن ما قصد رفتن به شخصیت بعدی. پس چگونه حدس ما رفتن به تکرار؟ خوب، اگر شخصیت های معتبر عبارتند از: A، B، و c باشند، اگر ما با یک آغاز، آن را ب تکرار، آن را تکرار به ج. گراد حداکثر نماد ما است، بنابراین خواهیم مجموعه ای ج را به حداقل نماد. و پس از آن خواهیم شاخص تکرار به شخصیت بعدی. بنابراین اگر حدس اصلی، ج، بعدی بود. شخصیت رفتن به تهی است نابودگر. در اینجا، توجه کنید که اگر شخصیت که ما در حال حاضر می خواهم افزایش نابودگر تهی بود، پس از آن ما در حال رفتن به آن را به حداقل نماد است. بنابراین اگر حدس می زنم ج بود، و سپس ما حدس جدید در حال رفتن به AA. و اگر حدس اصلی ما بود cccc، سپس حدس جدید ما رفتن به AAAAA. بنابراین، هر زمان که ما رسیدن به حداکثر رشته طول داده شده، پس از آن ما رفتن به پیاده سازی حداقل رشته طول بعدی، که فقط همه حرف از حداقل نماد. در حال حاضر، آنچه که این چک در اینجا انجام می دهند؟ خوب، اگر شاخص نقل مکان کرد از هشتم شخصیت به شخصیت نه - بنابراین ما اضافه کنید هشت ج به عنوان قبلی ما حدس می زنم - پس از آن شاخص در حال رفتن به در کانون توجه آخرین نابودگر تهی از حدس ما آرایه، است که به معنی این نیست در واقع نام کاربری رمز عبور رمز عبور استفاده می شود. بنابراین اگر ما در حال در که آخرین تهی متمرکز نابودگر، پس از آن ما یافت نشد رمز عبور معتبر با استفاده از فقط هشت شخصیت ها، که به معنی وجود ندارد رمز عبور صحیح که برای رمز گذاری به رشته داده شده است. و ما باید برای چاپ آن، گفت: ما نمی تواند پیدا معتبر رمز عبور، و بازگشت. بنابراین این حلقه در حالی که در حال رفتن به تکرار بیش از تمام رشته ها امکان پذیر است. اگر آنرا پیدا کرد هر که کدگذاری رشته های رمزگذاری شده انتظار می رود، آن را که رمز عبور رمز عبور خود را فراموش کرده اید؟ بازگشت. و آن را هیچ چیزی را پیدا کند، و سپس آن باز خواهد گشت، چاپ است که آن را قادر به پیدا کردن هر چیزی نیست. در حال حاضر، توجه کنید که تکرار بیش از همه رشته ها ممکن است احتمالا برای را در حالی که. بیایید واقع ببینید که چگونه مدت ها است که طول می کشد. بیایید ترک. خوب، وای - آن را می گوید تعریف نشده مرجع به دخمه. بنابراین به یاد داشته باشید، برای P مجموعه تنظیمات و صفحه مرد دخمه است که ما نیاز به لینک دخمه. در حال حاضر، به طور پیش فرض را فرمان نمی داند که شما می خواهم به استفاده از آن تابع است. بنابراین اجازه دهید را کپی کنید این دستور مشتری و فقط بر روی اضافه به پایان از آن، ارتباط دخمه. در حال حاضر، آن را کامپایل. بنابراین اجازه اجرا شکاف داده می شود رشته های رمزگذاری شده - تا سزار. به طوری که بسیار سریع بود. توجه داشته باشید که این به پایان رسید در 13. خوب، رمز عبور رمز سزار اتفاق می افتد 13. بنابراین رمز عبور دیگری را امتحان کنید. بیایید رمزگذاری Hirschhorn رمز عبور کنید و سعی کنید که ترک خوردگی. بنابراین توجه کنید که ما در حال حاضر رسیده است سه شخصیت. و ما در حال تکرار بیش از همه ممکن است رشته سه شخصیت. این بدان معناست که ما در حال حاضر پایان تکرار بیش از همه امکان پذیر است و دو رشته شخصیت. در حال حاضر، به نظر می رسد مثل این است که رفتن به را در حالی که قبل از ما رسیدن به رشته چهار شخصیت. ممکن است چند دقیقه طول بکشد. این چند دقیقه را ندارد. ما در رشته چهار شخصیت هستید. اما در حال حاضر، ما نیاز به تکرار بیش از همه ممکن است رشته های چهار شخصیت، که که شاید ممکن است 10 دقیقه طول بکشد. و پس از آن زمانی که ما در رسیدن به پنج شخصیت رشته ها، ما نیاز به تکرار بیش از همه از کسانی که ممکن است را چند ساعت. و ما نیاز به تکرار بیش از همه امکان پذیر است شش شخصیت رشته ها، که ممکن است چند روز طول بکشد و به همین ترتیب. پس از آن می تواند به طور بالقوه بسیار طولانی زمان برای تکرار بیش از همه ممکن است هشت شخصیت و رشته ها کمتر است. پس توجه کنید که این لزوما یک الگوریتم بسیار کارآمد برای پیدا کردن رمز عبور. شما ممکن است فکر می کنم که وجود دارد راه های بهتر هستند. به عنوان مثال، zyx رمز عبور! 32ab احتمالا رمز عبور بسیار شایع، در حالی که رمز عبور 12345 احتمالا بسیار شایع تر است. بنابراین یکی از راه های تلاش برای پیدا کردن رمز عبور سریع تر این است که فقط نگاه در کلمه عبور است که شایع تر هستند. بنابراین برای مثال، ما می توانید سعی کنید به خواندن کلمات از یک فرهنگ لغت و سعی کنید تمام این واژه ها به عنوان حدس رمز عبور ما. در حال حاضر، شاید رمز عبور است که ساده نیست. شاید کاربر تا حدودی هوشمندانه بود و سعی کنید با افزودن یک عدد به پایان یک کلمه. بنابراین شاید رمز عبور خود را password1 بود. بنابراین شما می توانید سعی کنید با تکرار بیش از همه کلمات در فرهنگ لغت با یک اضافه به پایان آن. و پس از آن ممکن است پس از انجام این کار، شما خواهید اضافه کردن یک دو به پایان آن. یا شاید کاربر در تلاش است تا حتی باهوش تر، و آنها می خواهند خود کلمه عبور خود را "هکر" اما آنها به جای همه موارد الکترونیک با threes. بنابراین شما می توانید این کار را انجام دهد. تکرار بیش از همه عبارات در فرهنگ لغت اما جای شخصیت های که مانند اعداد را با تعداد کسانی که نگاه کنید. بنابراین این ترتیب، شما ممکن است حتی بیشتر گرفتن کلمه عبور هستند که بسیار رایج است. اما در پایان، تنها راهی که شما می توانید ضبط تمام کلمات عبور به ادم بی شعور و کودن یا شهوانی زور تکرار بیش از همه رشته ها امکان پذیر است. بنابراین در پایان، شما نیاز به تکرار بیش از همه رشته ها از یکی از شخصیت ها به هشت شخصیت ها، که ممکن است مدت بسیار طولانی، اما شما نیاز دارید به انجام آن. من راب Bowden است. و این نرم افزار است.