سلام دوستان در این پست می خواهیم با کمک یک کتابخانه پایتون انکریپت و دیکریپت Aes را روی فایل ها انجام دهیم.
در این پست برای Encrypt و Decrypt کردن فایل هایمان می خواهیم از کتابخانه pyAesCrypt استفاده کنیم که به طور پیشفرض نصب نیست پس با وارد کردن دستور زیر در محیط خط فرمان(Command Line) خود به نصب آن می پردازیم.
1 | pip install pyAesCrypt |
بعد از نصب کتابخانه یک فایل درست می کنیم و شروع به نوشتن کد ها داخل آن می کنیم.
ابتدا به دو متد encryptFile و decryptFile از این کتابخانه نیاز داریم پس مانند خط زیر آنها را ایمپورت می کنیم.
1 | from pyAesCrypt import encryptFile,decryptFile |
خط بالا از کتابخانه pyAesCrypt دو متد encryptFile و decryptFile ایمپورت می کند.
حال بیایید متد encryptFile و decryptFile را بررسی کنیم.
1 | encryptFile(FileToEncrypt, PathToSaveEncrypted, Password, BufferSize) |
همانطور که می بینید این تابع چهار ورودی می گیرد. ورودی اول مسیر فایلی است که قرار است انکریپت شود و ورودی دوم مسیری است که فایل انکریپت شده قرار است در آن ذخیره شود(فایل اصلی حذف نمی شود). ورودی سوم این تابع رمزی است که قرار است برای انکریپت کردن مورد استفاده قرار بگیرد و ورودی آخر هم اندازه بافر را مشخص می کند.
1 | decryptFile(FileToDecrypt, PathToSaveDecrypted, Password, BufferSize) |
تابع decryptFile هم ورودی هایی مشابه متد قبل دارد؛ ابتدا مسیر فایل انکریپت شده سپس مسیری برای ذخیره فایل دیکریپت شده و بعد رمز و اندازه بافر را دریافت می کند.
کد زیر نحوه استفاده از این متد ها را مشخص می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | from pyAesCrypt import encryptFile as encrypt,decryptFile as decrypt while True: mode = input("You Want To Encypt A File Or Decrypt(E/D): ").lower() if mode == "e": path = input("Enter File Path: ") #e.g 1: D:\Directory\File.ext e.g 2: CodeWriter21.png pwd = input("Enter Password : ") #e.g: CodeWriter21 try: encrypt(path, path+".EnCrypted", pwd, 64*1024) print("EnCrypted To: " + path+".EnCrypted") except Exception as e: print("Error: "+str(e)) elif mode == "d": path = input("Enter File Path: ") #e.g 1: D:\Directory\File.ext.EnCrypted e.g 2: CodeWriter21.png.EnCrypted pwd = input("Enter Password : ") #e.g: CodeWriter21 try: decrypt(path, path[:path.lower().find('.encrypted')], pwd, 64*1024) print("DeCrypted To: " + path[:path.lower().find('.encrypted')]) except Exception as e: print("Error: "+str(e)) |
کد بالا ابتدا از کاربر می پرسدد که قصد انکریپت یا دیکریپت دارد و سپس از او مسیر فایل برای انجام عملیات و رمز را دریافت می کند.
امیدوارم از این پست در راه درست استفاده کند و همیشه در امنیت باشید.
تا پستی دیگر خداحافظتان