1 00:00:00,000 --> 00:00:13,000 2 00:00:13,000 --> 00:00:15,890 >> ROB BOWDEN راب: من هستم، و بیایید ترک خوردگی. 3 00:00:15,890 --> 00:00:19,390 پس از تنظیمات pset به یاد داشته باشید که ما قصد داریم به نیاز به استفاده از 4 00:00:19,390 --> 00:00:20,890 عملکرد دخمه. 5 00:00:20,890 --> 00:00:26,330 برای مرد، ما دو هش تعریف _xopensource. 6 00:00:26,330 --> 00:00:28,290 آیا در مورد اینکه چرا نگران نباشید ما نیاز به انجام این کار. 7 00:00:28,290 --> 00:00:31,550 و همچنین هش عبارتند از: unistd.h. 8 00:00:31,550 --> 00:00:35,920 >> پس یک بار که از راه، اجازه دهید رسیدن به برنامه واقعی. 9 00:00:35,920 --> 00:00:39,570 اولین چیزی که ما باید انجام دهیم این است مطمئن شوید کاربر وارد یک رمزگذاری معتبر 10 00:00:39,570 --> 00:00:41,520 رمز عبور در خط فرمان. 11 00:00:41,520 --> 00:00:46,050 به یاد داشته باشید که این برنامه قرار است به مانند نقطه بریده بریده کرک اجرا می شود، و 12 00:00:46,050 --> 00:00:48,120 پس از آن رشته های رمزگذاری شده. 13 00:00:48,120 --> 00:00:52,990 >> بنابراین در اینجا ما در حال چک کردن مطمئن شوید که تعداد آنها به دو اگر ما می خواهیم 14 00:00:52,990 --> 00:00:54,380 با این برنامه ادامه خواهد داد. 15 00:00:54,380 --> 00:00:58,830 اگر تعداد آنها دو نیست، این بدان معناست که یا کاربر وارد رمزگذاری نشده 16 00:00:58,830 --> 00:01:02,560 رمز عبور در خط فرمان، و یا آنها وارد بیش از فقط رمزگذاری 17 00:01:02,560 --> 00:01:05,379 رمز عبور در خط فرمان، که در آن مورد ما نمی دانیم که چه چیزی برای انجام با 18 00:01:05,379 --> 00:01:07,660 آرگومان های خط فرمان. 19 00:01:07,660 --> 00:01:11,390 >> بنابراین اگر تعداد آنها دو بود، ما می توانیم ادامه خواهد داد. 20 00:01:11,390 --> 00:01:14,160 و در اینجا، ما قصد داریم به اعلام یک متغیر های رمزگذاری شده. 21 00:01:14,160 --> 00:01:17,650 که فقط به نام مستعار اصلی argv1 به طوری که در سراسر این 22 00:01:17,650 --> 00:01:20,690 برنامه، ما لازم نیست به تماس آن argv1، که پس از آن شما باید به فکر می کنم 23 00:01:20,690 --> 00:01:22,950 در مورد آنچه که در واقع به معنای. 24 00:01:22,950 --> 00:01:27,180 >> پس در نهایت، ما می خواهیم به اعتبار که رمز عبور رمز کاربر 25 00:01:27,180 --> 00:01:30,840 وارد می توانست واقع شده است رمز عبور رمز شده. 26 00:01:30,840 --> 00:01:35,120 میانگین پستها در طول صفحه مرد دخمه، رمز عبور رمزگذاری شده باید 13 باشد 27 00:01:35,120 --> 00:01:36,440 حرف طولانی باشد. 28 00:01:36,440 --> 00:01:41,500 در اینجا، توجه کنید که ما هش تعریف طول رمزگذاری عنوان 13. 29 00:01:41,500 --> 00:01:46,140 بدین ترتیب ما فقط مطمئن شوید که طول رشته های رمزگذاری شده 30 00:01:46,140 --> 00:01:49,090 رمز عبور 13 است. 31 00:01:49,090 --> 00:01:52,280 >> و اگر آن را نداشته باشند، ما می خواهیم برای خروج از برنامه. 32 00:01:52,280 --> 00:01:56,470 پس یک بار که از راه، ما می توانیم در واقع در حال حاضر سعی کنید برای پیدا کردن آنچه که 33 00:01:56,470 --> 00:02:00,410 رمز عبور است که به رمزگذاری رمز عبور بود. 34 00:02:00,410 --> 00:02:04,870 در اینجا، ما می خواهیم برای گرفتن نمک از رمز عبور رمز شده است. 35 00:02:04,870 --> 00:02:08,930 به یاد داشته باشید، در هر صفحه مرد، که دو حرف اول از رمزگذاری 36 00:02:08,930 --> 00:02:10,590 رشته، اینجا را دوست دارم - 37 00:02:10,590 --> 00:02:12,770 50ZPJ و به همین ترتیب - 38 00:02:12,770 --> 00:02:16,170 دو کاراکتر اول را ما نمک است که مورد استفاده قرار گرفت 39 00:02:16,170 --> 00:02:18,080 در تابع دخمه. 40 00:02:18,080 --> 00:02:21,740 >> و در اینجا، ما می بینیم که نمک در هکتار بود. 41 00:02:21,740 --> 00:02:27,610 بنابراین ما می خواهیم برای کپی کردن دو مورد اول شخصیت، طول نمک مخلوط 42 00:02:27,610 --> 00:02:30,230 تعریف شده به عنوان دو. 43 00:02:30,230 --> 00:02:35,970 ما باید برای کپی کردن دو کاراکتر اول به این آرایه، نمک. 44 00:02:35,970 --> 00:02:39,340 توجه داشته باشید که ما نیاز به طول نمک به همراه یکی، از آنجایی که ما هنوز هم نیاز به یک تهی 45 00:02:39,340 --> 00:02:42,440 نابودگر در پایان نمک ما. 46 00:02:42,440 --> 00:02:46,940 >> سپس ما قصد داریم برای اعلام این آرایه، مهمان عزیز، از حداکثر طول اندازه به علاوه 47 00:02:46,940 --> 00:02:51,930 یک، که در آن حداکثر طول هش تعریف شده است به عنوان هشت، از حداکثر رمز عبور 48 00:02:51,930 --> 00:02:55,090 هشت کاراکتر است. 49 00:02:55,090 --> 00:02:59,860 و ما قصد داریم به استفاده از این تکرار بیش از همه رشته ها ممکن است که می تواند 50 00:02:59,860 --> 00:03:01,430 شود کلمات عبور معتبر است. 51 00:03:01,430 --> 00:03:07,720 بنابراین اگر شخصیت های معتبر در رمز عبور فقط یک، ب، و ج، و سپس 52 00:03:07,720 --> 00:03:14,970 ما بیش از یک تکرار، B، C، AA، با، حدود، و به همین ترتیب، تا زمانی که 53 00:03:14,970 --> 00:03:16,690 ما برای دیدن cccccccc - 54 00:03:16,690 --> 00:03:19,600 هشت ج. 55 00:03:19,600 --> 00:03:23,620 >> و اگر ما را معتبر نمی رمز عبور، پس ما نیاز به گفتن نیست که 56 00:03:23,620 --> 00:03:26,590 رشته های رمزگذاری شده نبود معتبر برای شروع با. 57 00:03:26,590 --> 00:03:29,970 بنابراین در حال حاضر، ما این رسیدن در حالی که 1 حلقه. 58 00:03:29,970 --> 00:03:33,100 توجه کنید که بدان معنی است که یک حلقه بی نهایت است. 59 00:03:33,100 --> 00:03:36,430 >> توجه کنید در هیچ بیانیه استراحت وجود دارد در داخل این حلقه بی نهایت است. 60 00:03:36,430 --> 00:03:38,570 وجود دارد تنها به اظهارات بازگشت. 61 00:03:38,570 --> 00:03:41,210 پس ما در واقع هرگز انتظار برای خروج از حلقه. 62 00:03:41,210 --> 00:03:44,750 ما فقط انتظار برای خروج از برنامه. 63 00:03:44,750 --> 00:03:48,220 من این بیانیه چاپ به اضافه شده بالای این حلقه را به نسخه قابل چاپ کردن 64 00:03:48,220 --> 00:03:51,790 چه حدس می زنم در حال حاضر ما در رمز عبور چی است. 65 00:03:51,790 --> 00:03:53,630 >> در حال حاضر، آنچه که این حلقه انجام می دهند؟ 66 00:03:53,630 --> 00:03:58,330 این حلقه بیش از تمام رشته ها امکان پذیر است است که می تواند کلمه عبور معتبر. 67 00:03:58,330 --> 00:04:02,700 اولین چیزی که ما قصد انجام است را حدس فعلی ما برای چه 68 00:04:02,700 --> 00:04:03,920 رمز عبور است. 69 00:04:03,920 --> 00:04:07,230 ما نمک است که ما از برداشت می گیرم رشته های رمزگذاری شده، و ما 70 00:04:07,230 --> 00:04:09,850 رفتن به رمز در آوردن حدس می زنم. 71 00:04:09,850 --> 00:04:14,760 با این کار ما حدس رمز، که ما قصد داریم برای مقایسه با 72 00:04:14,760 --> 00:04:18,810 رشته رمز شده که کاربر در خط فرمان وارد می شود. 73 00:04:18,810 --> 00:04:23,030 >> اگر آنها یکسان هستند، که در این صورت رشته قابل مقایسه صفر باز خواهد گشت، اگر 74 00:04:23,030 --> 00:04:28,050 آنها همان هستیم، پس حدس می زنم رمز عبور تولید شده است که رمزگذاری شده 75 00:04:28,050 --> 00:04:33,520 رشته، که در این صورت ما می توانیم نسخه قابل چاپ که به عنوان رمز عبور و بازگشت ما. 76 00:04:33,520 --> 00:04:37,520 اما اگر آنها یکسان نیست، که به معنی حدس ما اشتباه بود. 77 00:04:37,520 --> 00:04:43,250 >> و ما می خواهیم به تکرار به حدس معتبر بعدی. 78 00:04:43,250 --> 00:04:46,410 به طوری که چه این در حالی حلقه تلاش برای انجام. 79 00:04:46,410 --> 00:04:51,760 آن را به تکرار حدس ما به حدس معتبر بعدی. 80 00:04:51,760 --> 00:04:56,080 توجه کنید که وقتی می گوییم که شخصیت خاص در حدس ما 81 00:04:56,080 --> 00:05:01,770 حداکثر نماد، که تا اینجا رسید هش تعریف شده است به عنوان یک تیلدا، از 82 00:05:01,770 --> 00:05:05,710 که بزرگترین شخصیت ارزش ASCII که کاربر می تواند در را وارد کنید 83 00:05:05,710 --> 00:05:11,210 صفحه کلید، زمانی که شخصیت می رسد حداکثر نماد، پس از آن ما می خواهیم به ارسال 84 00:05:11,210 --> 00:05:17,150 آن را به حداقل نماد پشت، که فضا است، باز هم کمترین ASCII 85 00:05:17,150 --> 00:05:20,800 نماد ارزش که کاربر می تواند در صفحه کلید را وارد کنید. 86 00:05:20,800 --> 00:05:22,940 >> بنابراین ما قصد داریم به مجموعه ای که به حداقل نماد. 87 00:05:22,940 --> 00:05:25,720 و پس از آن ما قصد رفتن به شخصیت بعدی. 88 00:05:25,720 --> 00:05:28,730 پس چگونه حدس ما رفتن به تکرار؟ 89 00:05:28,730 --> 00:05:33,685 خوب، اگر شخصیت های معتبر عبارتند از: A، B، و c باشند، اگر ما با یک آغاز، 90 00:05:33,685 --> 00:05:36,630 آن را ب تکرار، آن را تکرار به ج. 91 00:05:36,630 --> 00:05:44,360 گراد حداکثر نماد ما است، بنابراین خواهیم مجموعه ای ج را به حداقل نماد. 92 00:05:44,360 --> 00:05:48,100 و پس از آن خواهیم شاخص تکرار به شخصیت بعدی. 93 00:05:48,100 --> 00:05:53,920 >> بنابراین اگر حدس اصلی، ج، بعدی بود. شخصیت رفتن به تهی است 94 00:05:53,920 --> 00:05:55,560 نابودگر. 95 00:05:55,560 --> 00:06:00,670 در اینجا، توجه کنید که اگر شخصیت که ما در حال حاضر می خواهم 96 00:06:00,670 --> 00:06:04,690 افزایش نابودگر تهی بود، پس از آن ما در حال رفتن به آن را به 97 00:06:04,690 --> 00:06:06,260 حداقل نماد است. 98 00:06:06,260 --> 00:06:11,431 بنابراین اگر حدس می زنم ج بود، و سپس ما حدس جدید در حال رفتن به AA. 99 00:06:11,431 --> 00:06:16,050 و اگر حدس اصلی ما بود cccc، سپس حدس جدید ما 100 00:06:16,050 --> 00:06:18,380 رفتن به AAAAA. 101 00:06:18,380 --> 00:06:24,430 >> بنابراین، هر زمان که ما رسیدن به حداکثر رشته طول داده شده، پس از آن ما 102 00:06:24,430 --> 00:06:29,090 رفتن به پیاده سازی حداقل رشته طول بعدی، که 103 00:06:29,090 --> 00:06:34,420 فقط همه حرف از حداقل نماد. 104 00:06:34,420 --> 00:06:36,970 در حال حاضر، آنچه که این چک در اینجا انجام می دهند؟ 105 00:06:36,970 --> 00:06:42,780 خوب، اگر شاخص نقل مکان کرد از هشتم شخصیت به شخصیت نه - 106 00:06:42,780 --> 00:06:46,460 بنابراین ما اضافه کنید هشت ج به عنوان قبلی ما حدس می زنم - 107 00:06:46,460 --> 00:06:51,270 پس از آن شاخص در حال رفتن به در کانون توجه آخرین نابودگر تهی از حدس ما 108 00:06:51,270 --> 00:06:57,990 آرایه، است که به معنی این نیست در واقع نام کاربری رمز عبور رمز عبور استفاده می شود. 109 00:06:57,990 --> 00:07:03,530 >> بنابراین اگر ما در حال در که آخرین تهی متمرکز نابودگر، پس از آن ما یافت نشد 110 00:07:03,530 --> 00:07:07,750 رمز عبور معتبر با استفاده از فقط هشت شخصیت ها، که به معنی وجود ندارد 111 00:07:07,750 --> 00:07:10,550 رمز عبور صحیح که برای رمز گذاری به رشته داده شده است. 112 00:07:10,550 --> 00:07:13,520 و ما باید برای چاپ آن، گفت: ما نمی تواند پیدا معتبر 113 00:07:13,520 --> 00:07:16,100 رمز عبور، و بازگشت. 114 00:07:16,100 --> 00:07:20,280 بنابراین این حلقه در حالی که در حال رفتن به تکرار بیش از تمام رشته ها امکان پذیر است. 115 00:07:20,280 --> 00:07:24,640 >> اگر آنرا پیدا کرد هر که کدگذاری رشته های رمزگذاری شده انتظار می رود، آن را 116 00:07:24,640 --> 00:07:26,190 که رمز عبور رمز عبور خود را فراموش کرده اید؟ بازگشت. 117 00:07:26,190 --> 00:07:29,610 و آن را هیچ چیزی را پیدا کند، و سپس آن باز خواهد گشت، چاپ است که آن را 118 00:07:29,610 --> 00:07:31,910 قادر به پیدا کردن هر چیزی نیست. 119 00:07:31,910 --> 00:07:39,220 در حال حاضر، توجه کنید که تکرار بیش از همه رشته ها ممکن است احتمالا برای 120 00:07:39,220 --> 00:07:40,420 را در حالی که. 121 00:07:40,420 --> 00:07:43,590 بیایید واقع ببینید که چگونه مدت ها است که طول می کشد. 122 00:07:43,590 --> 00:07:47,230 >> بیایید ترک. 123 00:07:47,230 --> 00:07:51,050 خوب، وای - آن را می گوید تعریف نشده مرجع به دخمه. 124 00:07:51,050 --> 00:07:55,330 بنابراین به یاد داشته باشید، برای P مجموعه تنظیمات و صفحه مرد دخمه است که ما 125 00:07:55,330 --> 00:07:58,130 نیاز به لینک دخمه. 126 00:07:58,130 --> 00:08:01,130 در حال حاضر، به طور پیش فرض را فرمان نمی داند که شما 127 00:08:01,130 --> 00:08:03,010 می خواهم به استفاده از آن تابع است. 128 00:08:03,010 --> 00:08:09,680 >> بنابراین اجازه دهید را کپی کنید این دستور مشتری و فقط بر روی اضافه به پایان 129 00:08:09,680 --> 00:08:13,300 از آن، ارتباط دخمه. 130 00:08:13,300 --> 00:08:14,820 در حال حاضر، آن را کامپایل. 131 00:08:14,820 --> 00:08:23,880 بنابراین اجازه اجرا شکاف داده می شود رشته های رمزگذاری شده - 132 00:08:23,880 --> 00:08:25,130 تا سزار. 133 00:08:25,130 --> 00:08:28,690 134 00:08:28,690 --> 00:08:30,790 به طوری که بسیار سریع بود. 135 00:08:30,790 --> 00:08:33,230 >> توجه داشته باشید که این به پایان رسید در 13. 136 00:08:33,230 --> 00:08:38,240 خوب، رمز عبور رمز سزار اتفاق می افتد 13. 137 00:08:38,240 --> 00:08:41,650 بنابراین رمز عبور دیگری را امتحان کنید. 138 00:08:41,650 --> 00:08:45,830 بیایید رمزگذاری Hirschhorn رمز عبور کنید و سعی کنید که ترک خوردگی. 139 00:08:45,830 --> 00:08:51,750 140 00:08:51,750 --> 00:08:55,110 >> بنابراین توجه کنید که ما در حال حاضر رسیده است سه شخصیت. 141 00:08:55,110 --> 00:08:58,660 و ما در حال تکرار بیش از همه ممکن است رشته سه شخصیت. 142 00:08:58,660 --> 00:09:01,420 این بدان معناست که ما در حال حاضر پایان تکرار بیش از همه امکان پذیر است و 143 00:09:01,420 --> 00:09:04,660 دو رشته شخصیت. 144 00:09:04,660 --> 00:09:09,180 در حال حاضر، به نظر می رسد مثل این است که رفتن به را در حالی که قبل از ما رسیدن به 145 00:09:09,180 --> 00:09:10,580 رشته چهار شخصیت. 146 00:09:10,580 --> 00:09:14,680 ممکن است چند دقیقه طول بکشد. 147 00:09:14,680 --> 00:09:16,055 >> این چند دقیقه را ندارد. 148 00:09:16,055 --> 00:09:18,450 ما در رشته چهار شخصیت هستید. 149 00:09:18,450 --> 00:09:22,800 اما در حال حاضر، ما نیاز به تکرار بیش از همه ممکن است رشته های چهار شخصیت، که 150 00:09:22,800 --> 00:09:26,000 که شاید ممکن است 10 دقیقه طول بکشد. 151 00:09:26,000 --> 00:09:28,720 و پس از آن زمانی که ما در رسیدن به پنج شخصیت رشته ها، ما نیاز به تکرار بیش از همه 152 00:09:28,720 --> 00:09:31,450 از کسانی که ممکن است را چند ساعت. 153 00:09:31,450 --> 00:09:34,080 و ما نیاز به تکرار بیش از همه امکان پذیر است شش شخصیت رشته ها، که 154 00:09:34,080 --> 00:09:36,560 ممکن است چند روز طول بکشد و به همین ترتیب. 155 00:09:36,560 --> 00:09:41,380 >> پس از آن می تواند به طور بالقوه بسیار طولانی زمان برای تکرار بیش از همه ممکن است 156 00:09:41,380 --> 00:09:44,850 هشت شخصیت و رشته ها کمتر است. 157 00:09:44,850 --> 00:09:50,600 پس توجه کنید که این لزوما یک الگوریتم بسیار کارآمد برای پیدا کردن 158 00:09:50,600 --> 00:09:51,860 رمز عبور. 159 00:09:51,860 --> 00:09:54,540 شما ممکن است فکر می کنم که وجود دارد راه های بهتر هستند. 160 00:09:54,540 --> 00:10:02,230 به عنوان مثال، zyx رمز عبور! 32ab احتمالا رمز عبور بسیار شایع، 161 00:10:02,230 --> 00:10:06,440 در حالی که رمز عبور 12345 احتمالا بسیار شایع تر است. 162 00:10:06,440 --> 00:10:13,570 >> بنابراین یکی از راه های تلاش برای پیدا کردن رمز عبور سریع تر این است که فقط نگاه 163 00:10:13,570 --> 00:10:15,560 در کلمه عبور است که شایع تر هستند. 164 00:10:15,560 --> 00:10:20,480 بنابراین برای مثال، ما می توانید سعی کنید به خواندن کلمات از یک فرهنگ لغت و سعی کنید تمام 165 00:10:20,480 --> 00:10:24,860 این واژه ها به عنوان حدس رمز عبور ما. 166 00:10:24,860 --> 00:10:29,210 در حال حاضر، شاید رمز عبور است که ساده نیست. 167 00:10:29,210 --> 00:10:32,600 شاید کاربر تا حدودی هوشمندانه بود و سعی کنید با افزودن یک عدد به 168 00:10:32,600 --> 00:10:34,220 پایان یک کلمه. 169 00:10:34,220 --> 00:10:37,000 >> بنابراین شاید رمز عبور خود را password1 بود. 170 00:10:37,000 --> 00:10:41,520 بنابراین شما می توانید سعی کنید با تکرار بیش از همه کلمات در فرهنگ لغت با یک 171 00:10:41,520 --> 00:10:43,210 اضافه به پایان آن. 172 00:10:43,210 --> 00:10:47,360 و پس از آن ممکن است پس از انجام این کار، شما خواهید اضافه کردن یک دو به پایان آن. 173 00:10:47,360 --> 00:10:50,240 >> یا شاید کاربر در تلاش است تا حتی باهوش تر، و آنها می خواهند خود 174 00:10:50,240 --> 00:10:54,980 کلمه عبور خود را "هکر" اما آنها به جای همه موارد الکترونیک 175 00:10:54,980 --> 00:10:56,600 با threes. 176 00:10:56,600 --> 00:10:58,440 بنابراین شما می توانید این کار را انجام دهد. 177 00:10:58,440 --> 00:11:02,100 تکرار بیش از همه عبارات در فرهنگ لغت اما جای شخصیت های که 178 00:11:02,100 --> 00:11:04,790 مانند اعداد را با تعداد کسانی که نگاه کنید. 179 00:11:04,790 --> 00:11:09,670 >> بنابراین این ترتیب، شما ممکن است حتی بیشتر گرفتن کلمه عبور هستند که بسیار رایج است. 180 00:11:09,670 --> 00:11:14,690 اما در پایان، تنها راهی که شما می توانید ضبط تمام کلمات عبور به ادم بی شعور و کودن یا شهوانی 181 00:11:14,690 --> 00:11:17,340 زور تکرار بیش از همه رشته ها امکان پذیر است. 182 00:11:17,340 --> 00:11:22,100 بنابراین در پایان، شما نیاز به تکرار بیش از همه رشته ها از یکی از شخصیت ها به 183 00:11:22,100 --> 00:11:28,110 هشت شخصیت ها، که ممکن است مدت بسیار طولانی، اما شما نیاز دارید به انجام آن. 184 00:11:28,110 --> 00:11:30,024 >> من راب Bowden است. 185 00:11:30,024 --> 00:11:31,425 و این نرم افزار است. 186 00:11:31,425 --> 00:11:36,533