برنامه ی هک از طریق Rainbow در پایتون

در این پروژه شما یک task را باید پیاده سازی کنید. نمونه ی فایل source.py که باید برای سابمیت استفاده کنید در پایین صفحه وجود دارد (گزینه دانلود فایل) برای دانلود فایل روی این گزینه کلیک کنید.

توجه شود که رمز ها از 1000 تا 9999 می باشند.

به هیچ وجه اسم تابع را عوض نکنید و همه‌ی کدهایی که می خواهید بزنید را در همان def پیاده‌سازی کنید (خارج از def کدی نگذارید) و task تابع مربوطه را کامل کنید و سپس این فایل را حتما با نام (source.py) و حتما به صورت zip دربیاورید(rar نباشد فقط zip ) و ارسال کنید.(در فایل zip فقط یک فایل باید باشد که همان source.py است و هیچ گونه فایل دیگری در فایل zip قرار نده

ید )

در صورت رعایت نکردن هر کدام از نکات بالا متاسفانه نمره شما توسط سیستم صفر خواهد شد .

نکته: سیستم داوری آنلاین از پایتون 3.4 استفاده می کند، در این نسخه دیکشنری ها ترتیب ورود اطلاعات به خود را به یاد نمی آورند و ممکن است در صورت مرتب سازی آنها به نتیجه مطلوب نرسید، برای رفع این مشکل به جای dict از OrderedDict استفاده کنید، این ساختار داده را می

توانید از کتابخانه collections در برنامه وارد کنید.

نمونه محتوای یک فایل csv:

danial,99b057c8e3461b97f8d6c461338cf664bc84706b9cc2812daaebf210ea1b9974


elham,85432a9890aa5071733459b423ab2aff9f0

85f56ddfdb26c8fae0c2a04dce84c
خروجی تسک:

danial,5104
elham,9770

فایل source.py

import hashlib
import csv

def hash_password_hack(input_file_name, output_file_name):
پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 3 سال پیش

کسی حل کرده این پروژه رو؟ :(

sokanacademy forum
کاربر سکان آکادمی 3 سال پیش

✅💙

# this is program a rainbow hack
# import library's.
from hashlib import sha256
import csv

def hash_password_hack(input_file_name , output_file_name):
....# khandan file input.
....with open(input_file_name) as fin:
........reader = csv.reader(fin)
........# motaghayer (hp) yek dict baraye hash haye range 1000 ta 9999 ast.
........# motaghayer (new_hp) yek dict baraye name va password hack shode ast.
........hp = {}
........new_hp = {}
........# in halghe hash haye range 1000 ta 9999 ra vared dict (hp) mikonad.
........for i in range(1000 , 9999):
............hash_jadid = sha256(str(i).encode())
............hash_jadid = hash_jadid.hexdigest()
............hp[hash_jadid] = i
........# halghe aval name va hash ra khat be khat az file input mikhanad.
........# halghe dovom check mikonad hash haye mojod dar file input ba hash haye dakhel dict (hp) motabeghat darad ya na. 
........# agar motabeghat dashtand password va name ra gerefte va dar dakhel dict (new_hp) migozarad
........for radif in reader:
............name = radif[0]
............hash_in_reader = radif[1]
............for hach_in_hp in hp.keys():
................if hash_in_reader == hach_in_hp:
....................new_hp[name]=hp.get(hach_in_hp)
....# dar code zir name ha va password hayii ke hack shodand ra vared yek file jadid mikonim
....with open(output_file_name , 'w') as out:
........count = 0
........for names in new_hp:
............count += 1
............if count == 1:
................out.write(names + ',' + str(new_hp.get(names)))
............else:
................out.write('\n' + names + ',' + str(new_hp.get(names)))

# ba print zir ba dadan input file o output file barname to test konid
# print(hash_password_hack('input_file_name.csv','output_file_name.csv'))
sokanacademy forum
کاربر سکان آکادمی 3 سال پیش

دوست عزیز ایرادی که گرفتن این بود:

((ابتدا دیکشنری رمز ها رو به صورت کامل بسازید سپس وارد حلقه بعدی که پیدا کردن رمز هست بشید))

میتونید اصلاح کنید؟

ممنون میشم

online-support-icon