1. درک منبع و تأثیر داده های تکراری
ابتدا باید درک کنیم که چرا این همه داده های تکراری تولید می شود. در طول ساخت پرونده فرهنگ لغت ، ممکن است داده ها از چندین منبع داده جمع آوری شوند و همپوشانی جزئی بین این منابع داده وجود دارد. به عنوان مثال ، هنگام جمع آوری داده ها از لیست های مختلف کلمات ، مجموعه های رمز عبور رایج ، لیست های ترکیب کاراکترهای مختلف و غیره ، ممکن است برخی از کلمات اساسی یا ترکیب های رمز عبور ساده در چندین منبع وجود داشته باشند.
این داده های تکراری اثرات نامطلوب زیادی به همراه خواهد داشت. از نظر ذخیره سازی ، فضای 2T در حال حاضر بسیار بزرگ است و اگر محتوای تکراری زیادی در آن وجود داشته باشد ، معادل هدر رفتن فضای ذخیره سازی ارزشمند است. هنگامی که در واقع از این فایل فرهنگ لغت برای شکستن رمز عبور یا سایر عملیات استفاده می کنید ، محتوای تکراری منجر به عملیات جستجو و مقایسه غیرضروری می شود. به عنوان مثال ، اگر در کرک کردن رمز عبور ، الگوریتم نیاز به مقایسه محتوای فرهنگ لغت با رمز عبور هدف یکی یکی داشته باشد ، محتوای تکراری تعداد مقایسه ها را افزایش می دهد و در نتیجه کل فرآیند کرک را کند می کند.
2.روش فیلتر بر اساس ابزارهای پردازش متن
استفاده از ابزارهای تحت سیستم ویندوز
- استفاده از PowerShell
- در سیستم های ویندوز ، PowerShell قابلیت های پردازش متن غنی را فراهم می کند. ما می توانیم از اسکریپت PowerShell زیر برای حذف خطوط تکراری استفاده کنیم:
```powershell
$lines = دریافت - محتوا "dictionary.txt"
$uniqueLines = @()
foreach ($line in $lines) {
if ($uniqueLines - حاوی $line نیست) {
```
این اسکریپت ابتدا تمام خطوط موجود در "dictionary.txt" را در یک آرایه "$lines" می خواند. سپس ، هر ردیف از طریق یک حلقه عبور می کند و اگر یک ردیف در آرایه جدید "$ uniqueLines" نباشد ، آن را به این آرایه جدید اضافه کنید. در نهایت ، محتوای آرایه جدید را در "unique_dictionary.txt" ذخیره کنید.
الگوریتم تقسیم و تسخیر
- از آنجایی که فایل فرهنگ لغت ما بسیار بزرگ است (2T)، پردازش مستقیم ممکن است با مشکلاتی مانند کمبود حافظه مواجه شود. الگوریتم تقسیم و تسخیر می تواند این مشکل را به خوبی حل کند. ما می توانیم این پرونده بزرگ را به چندین زیر پرونده کوچکتر تقسیم کنیم. به عنوان مثال ، می توانیم آن را با توجه به تعداد خاصی از خطوط یا اندازه فایل تقسیم کنیم.
- سپس هر زیر فایل به طور جداگانه به صورت تکراری فیلتر می شود. پرونده های فرعی پردازش شده را دوباره در یک پرونده ادغام کنید. در طی فرآیند ادغام ، باید دوباره بررسی کنید که آیا محتوای تکراری وجود دارد یا خیر ، زیرا ممکن است همان محتوا بین پرونده های فرعی مختلف وجود داشته باشد.
4. نتایج فیلتر را تأیید کنید
پس از تکمیل فیلتر مکرر ، باید تأیید کنیم که آیا نتایج صحیح هستند یا خیر. می توانید از روشهای ساده ای مانند انتخاب تصادفی خطوط و بررسی تعداد وقوع این خطوط در پرونده اصلی و فیلتر شده استفاده کنید. اگر چندین بار در فایل اصلی ظاهر شود و فقط یک بار در فایل فیلتر شده ظاهر شود ، فیلتر معتبر است.
علاوه بر این ، امکان مقایسه اندازه فایل اصلی و فایل فیلتر شده نیز وجود دارد. اگر اندازه فایل فیلتر شده به طور قابل توجهی کوچکتر از فایل اصلی باشد و در تست های بعدی به طور معمول عمل کند (مانند استفاده از این فایل فرهنگ لغت برای انجام یک تست جستجوی رمز عبور ساده برای بررسی اینکه آیا می تواند به درستی کار کند و رمز عبوری که باید وجود داشته باشد را از دست ندهد). همچنین می توان توضیح داد که کار فیلتر مکرر به نتایج خوبی دست یافته است.
سرور ما از حافظه 512 گیگابایتی و یک سرور هارد دیسک پروتکل NVMe با سرعت بالا استفاده می کند. نیم ماه طول کشید تا پردازش موفقیت آمیز انجام شود و مجموعه ای از اسکریپت های پردازش کارآمد کشف شود. در صورت نیاز به نوع ، می توانید با خدمات مشتری وب سایت تماس بگیرید. برای برقراری ارتباط و فیلتر کردن مشکلاتی که در طول فرآیند تکراری روی آن قدم گذاشته اید و همچنین نوشتن اسکریپت های پردازش خودکار!
فیلتر کردن محتوای تکراری در فایل فرهنگ لغت نوع متن 2T یک کار چالش برانگیز اما بسیار ضروری است. با انتخاب معقول ابزارها و الگوریتمها ، میتوانیم به طور موثر محتوای تکراری را حذف کنیم و کیفیت و کارایی استفاده از فایلهای فرهنگ لغت را بهبود بخشیم ، که هم در شکستن رمز عبور و هم در سایر سناریوهای کاربردی بر اساس این فایل فرهنگ لغت اهمیت زیادی دارد.