ساخت لیستی از پسوردهای هش شده

حوصلم سر رفته بود گفتم یه اسکریپت بنویسم که یه سری پسورد بهش بدیم و هششون رو بهمون بده! البته اگه سایت قابل قبولی دیتابیسش رو بدست آوردین دنبال این نباشین که با این روش بتونید پسوردهای هش نشده رو بدست بیارین چون سایت‌های درست حسابی از الگوریتم سالت هم استفاده میکنن که کار رو حسابی سخت میکنن! البته اگه به دیتابیس فیس نما دسترسی پیدا کردین راحت میتونین با این روش به اصل پسوردها برسین :)) خب بریم سراغ اسکریپت! کاری که این اسکریپت میکنه خیلی سادست! به اسکریپت یه فایل میدیم که تو هر خطش یه پسورد و جود داره و اسکریپت دونه دونه پسوردها رو میخونه و هششون میکنه و هش رو به همراه اصل پسورد درکنار هم در یک فایل جدید ذخیره میکنه 🙂 کد اسکریپت اینه، که من فرض میکنم شما اون رو با اسم md5.sh در پوشه home ذخیره کردین.

 

 

بعد از ذخیره کردن اسکریپت با این کد بهش قابلیت اجرایی میدیم:

 

قبل از اجرا کردن اسکریپت نیاز داریم تا یه سری پسورد داشته باشیم. من برای تولید پسورد تصادفی از این سایت استفاده کردم و باهاش ۱۰تا پسورد تصادفی تولید کردم. اینم لیست پسوردها:

 

و این پسوردها رو در پوشه home در فایلی به اسم passwords.txt ذخیره کردم. حالا اسکریپت رو با دستور

اجراش میکنم و خروجی اسکریپت تو یه فایل به اسم md5_hashed_pass.txt ذخیره میشه. برای ۱۰تا پسورد من محتوای فایل خروجی این هست:

 

همونطور که میبینین در هر خط ابتدا هش شده پسورد که با الگوریتم md5 تولید شده قرار داره و بعد از اون هم خود پسورد. اما ببینیم هر خط این اسکریپت چیکار میکنه!

 

declare -i n: متغییر n رو به عنوان یک متغییر عددی تعریف میکنیم.

 

n=1: و داخل این متغییر مقدار 1 رو ذخیره میکنیم.

 

while [ $n -lt 11 ]; do: یه حلقه درست میکنیم تا ۱۰بار عملیات خوندن خطوط رو انجام بده و درواقع ۱۰بار کدهای بین این خط و خط آخر یعنی done رو انجام میده. دقیق کنید که حلقه while تا زمانی که شرط جلوش درست باشه انجام میشه! و اینجا شرطش این هست که محتوای متغییر n کوچکتر از 11 باشه. و با توجه به اینکه n برابر با 1 هست و در انتهای هر بار انجام شدن حلقه (خط n=n+1) یک واحد به متغییر n اضافه میشه پس این حلقه ۱۰ بار انجام میشه. اگه خواستین تعداد بیشتری پسورد رو هش کنید حتما مقدار 11 رو تغییر بدید. مثلا اگه خواستید ۲۰تا پسورد رو هش کنید مقدار 11 رو به 21 تغییر بدین.

 

a=”$( )”: این خط میاد میگه خروجی دستورات داخل پرانتز رو داخل متغییر a بریز. اما دستورات داخل پرانتز چیکار میکنن؟ head -n $n passwords.txt | tail -1 میاد میگه خط nام فایل پسوردهارو برو بخون. اما هربار که یک پسورد از فایل پسوردها خونده میشه یک کاراکتر \n هم اضافی خونده میشه. برای حذف این کاراکتر اضافی خروجی رو با | به tr -d ‘\n’ میدیم تا اون کاراکتر اضافه آخری را پاک کنه و مجددا با | خروجی رو به دستور md5sum میدیم تا پسورد رو برامون هش کنه! و اگه نفهمیدین چی شد این خط میاد خط nام فایل پسوردها رو میگیره و هش شدش رو تو متغییر a میریزه!

 

a=$a”$()”: این میاد میگه درانتهای متغییر a که حاوی هش هست خود پسورد رو هم قرار بده.

 

echo $a >> md5_hashed_pass.txt: حالا ما پسورد و هشش رو در متغییر a داریم و با این دستور محتوای متغییر a رو تو فایل خروجی ذخیره میکنیم.

 

خب این توضیحات به نظرم کافیه! اگه قسمتیش رو خوب متوجه نشدین حتما کامنت بذارید 🙂

1 فکر می‌کنند “ساخت لیستی از پسوردهای هش شده”

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *