رمزنگاری و رمزگشایی فایل با پایتون :: V i R u s Ʒ²

V i R u s Ʒ²

هک و امنیت

V i R u s Ʒ²

هک و امنیت

Virus 32

💢 دوستانم بی دفاع و دشمنانم بی جواب نخواهند ماند 💢

-->
آخرین نظرات

اسکریپت آموزشی رمزنگاری و رمزگشایی کردن فایل ها در پایتون با استفاده از کتابخونه ی PyCrypto که در مباحث رمزنگاری میتونه کمکمون کنه

با استفاده از کدهایی که تو این پست قرار میدم

میتونین مسیر یه فایل مثل آهنگ و ... ( هر چیزی ) به برنامه بدین و بعدش یه پسوورد بهش بدین تا آخرش با استفاده از اون پسوورد ، فایلتون رو رمزنگاری کنه و بعدش اگه خواستین میتونین فایل اصلی رو پاکش کنین و هر موقع خواستین مجددا از طریق همون فایل که دیگه غیر قابل باز کردن هستش  ، برش گردونین تا کسی نتونه تو بعضی از اطلاعات شما که دوست ندارین سرک بکشه

این پست رو بعد از سه ماه کار کردن روی رمزنگاری تو پایتون بالاخره آماده کردم که فکر نکنم اصلا تو سایت های ایرانی در مورد رمزنگاری تو پایتون صحبت شده باشه ، مگر اینکه کتاب های آموزشی خارجی گذاشته باشن

قبلا هم توی این پست در مورد رمزنگاری متن تو پایتون صحبت کرده بودیم

در نتیجه از این کدها در راهی که من فکرشو میکنم استفاده کنین

چون با یه خرده تغییر و اضافه کردن تقریبا 30 خط کد دیگه

میشه یه چیز تو مایه های باج افزار درست کرد که تمامی اطلاعات رو رمزنگاری میکنه

البته من میخواستم سورس باج افزار با پایتون رو قرار بدم و برای اینکه یه خرده با مباحث شیرین رمزنگاری تو پایتون آشنا بشین ، خط به خط اونو براتون تحلیل کنم

اما نشد دیگه ... اینجا ایرانه ( اگه نبود برای پیشرفت اعضا هم که شده بود قطعا این کارو میکردم )

خب دیگه ...

بعد از کلی چرت و پرت پروندن خودمونی

میریم سراغ لپ کلوم

اول باید کتابخونه ی PyCrypto رو نصب کنیم که اگه نصبش کنین ، میبینین آخرش ارور میده که من دقیقا دلیل اصلیشو بعد از سه ماه نفهمیدم

اما در کل به جای نوشتن اسم کتابخونه ، باید از اسم پایین استفاده کنیم تا کتابخونه درست و کامل نصب بشه

pip install pycryptodome

بعد از اینکه کامل نصب شد ، یه اسکریپت پایتون ایجاد کنین و کدهای پایین رو داخلش قرار بدین

import os
from Crypto.Cipher import AES
from Crypto.Hash import SHA256
from Crypto import Random


def encrypt(key, filename):
    chunksize = 64 * 1024
    outputFile = "(ENC)" + filename
    filesize = str(os.path.getsize(filename)).zfill(16)
    IV = Random.new().read(16)

    encryptor = AES.new(key, AES.MODE_CBC, IV)

    with open(filename, 'rb') as infile:
        with open(outputFile, 'wb') as outfile:
            outfile.write(filesize.encode('utf-8'))
            outfile.write(IV)
#http://virus32.blog.ir
            while True:
                chunk = infile.read(chunksize)

                if len(chunk) == 0:
                    break
                elif len(chunk) % 16 != 0:
                    chunk += b' ' * (16 - (len(chunk) % 16))

                outfile.write(encryptor.encrypt(chunk))


def decrypt(key, filename):
    chunksize = 64 * 1024
    outputFile = filename[11:]

    with open(filename, 'rb') as infile:
        filesize = int(infile.read(16))
        IV = infile.read(16)

        decryptor = AES.new(key, AES.MODE_CBC, IV)

        with open(outputFile, 'wb') as outfile:
            while True:
                chunk = infile.read(chunksize)

                if len(chunk) == 0:
                    break

                outfile.write(decryptor.decrypt(chunk))
            outfile.truncate(filesize)
#http://virus32.blog.ir

def getKey(password):
    hasher = SHA256.new(password.encode('utf-8'))
    return hasher.digest()


def Main():
    choice = raw_input("Would you like to (E)ncrypt or (D)ecrypt?: ")
    if choice == 'E' or choice == 'e':
        filename = raw_input("File to encrypt: ")
        password = raw_input("Password: ")
        encrypt(getKey(password), filename)
        print("Done.")
    elif choice == 'D' or choice == 'd':
        filename = raw_input("File to decrypt: ")
        password = raw_input("Password: ")
        decrypt(getKey(password), filename)
        print("Done.")
    else:
        print("No Option selected, closing...")


if __name__ == '__main__':
    Main()

خب حالا اسکریپت رو اجرا کنین

اول از ما میپرسه که میخواین فایلی رو رمزنگاری کنین یا اینکه رمزگشایی کنید که اگه بخواین فایلی رو رمزنگاری کنین ، حرف E یا e رو از روی کیبورد بزنین و بعدش Enter کنین ، بعدا ازتون یه مسیر میخواد که شما هم باید مسیر برنامه رو بدین و بعد از اینتر کردن ، پسووردتونو بهش بدین تا براتون رمزنگاری کنه و اگه فایلتون کنار اسکریپته که دیگه نیازی نیست مسیر بدین و اگه فقط اسم فایل رو هم بدین و اینتر کنین هم کافیه

حالا فایل اصلی رو پاک کنین و برگردین به اسکریپت و مجددا اونو اجرا کنین ، حالا به جای E از حرف D استفاده کنین و بعد از اینتر کردن ، طبق روال قبلی پیش برین تا بفهمین قضیه چیه ...

ضمنا بعد از اینکه فایلتونو رمزنگاری کردین ، قبل از اینکه بخواین اونو حذفش کنین ، اول از همه بازش کنین و ببینین که به چه شکله یا اینکه چه اتفاقی میفته و ...

به امید بهتر شدن وضعیت کشورمون 👌❤️

نظر (۲)

کدر جان گل کاشتی کاش میشد یک کارش کرد پاک هم نمیشد امکان داره اونی که نتونه سرک بکشه پاک کنه که جالب بشه :D
MR C0D3R :
اصلا چرا باید سرک بکشن که بخوان پاک کنن ؟ :)
نحوه ی غیر قابل حذف کردن یک فایل رو هم مینویسم ...
اینم درسته ولی خوب گاهی اوقات میشه خوب :)
مر30 منتظرم :)
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی