ফাইল এনক্রিপশন এবং ডিক্রিপশন টুল

প্র্যাকটিস প্রোজেক্টস - পাইথন প্রোগ্রামিং (Python Programming) - Computer Programming

318

ফাইল এনক্রিপশন এবং ডিক্রিপশন টুল তৈরি করা হলে একটি নির্দিষ্ট ফাইলকে সুরক্ষিত করতে এনক্রিপশন এবং ডিক্রিপশনের সুবিধা পাওয়া যায়। Python-এর cryptography লাইব্রেরি ব্যবহার করে সহজে একটি ফাইল এনক্রিপশন এবং ডিক্রিপশন টুল তৈরি করা যেতে পারে।

এই প্রোজেক্টে, আমরা একটি নির্দিষ্ট কী ব্যবহার করে একটি ফাইল এনক্রিপ্ট করব এবং তারপর সেই একই কী ব্যবহার করে ফাইলটি ডিক্রিপ্ট করব।


Step 1: cryptography লাইব্রেরি ইনস্টল করা

প্রথমে cryptography লাইব্রেরি ইনস্টল করতে হবে। এটি ইনস্টল করতে টার্মিনালে নিচের কমান্ডটি ব্যবহার করুন:

pip install cryptography

Step 2: প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করা

 

from cryptography.fernet import Fernet

Step 3: এনক্রিপশন এবং ডিক্রিপশন ফাংশন তৈরি করা

১. কী জেনারেটর ফাংশন

এনক্রিপশন এবং ডিক্রিপশনের জন্য একটি সিক্রেট কী প্রয়োজন। এটি তৈরি করার জন্য একটি ফাংশন লিখতে হবে যা একটি সিক্রেট কী জেনারেট করবে এবং ফাইল আকারে সংরক্ষণ করবে।

def generate_key():
    key = Fernet.generate_key()
    with open("secret.key", "wb") as key_file:
        key_file.write(key)

২. কী লোড ফাংশন

এই ফাংশনটি secret.key ফাইল থেকে কী লোড করবে।

def load_key():
    return open("secret.key", "rb").read()

৩. ফাইল এনক্রিপশন ফাংশন

এই ফাংশনটি ফাইল এনক্রিপ্ট করবে। এতে load_key() ফাংশন থেকে কী নিয়ে ফাইলটিকে এনক্রিপ্ট করা হবে।

def encrypt_file(file_name):
    key = load_key()
    fernet = Fernet(key)
    
    with open(file_name, "rb") as file:
        file_data = file.read()
    
    encrypted_data = fernet.encrypt(file_data)
    
    with open(file_name, "wb") as file:
        file.write(encrypted_data)
    
    print(f"{file_name} has been encrypted.")

৪. ফাইল ডিক্রিপশন ফাংশন

এই ফাংশনটি ফাইল ডিক্রিপ্ট করবে। এনক্রিপ্টেড ফাইলের ওপর কী ব্যবহার করে ডিক্রিপ্ট করা হবে।

def decrypt_file(file_name):
    key = load_key()
    fernet = Fernet(key)
    
    with open(file_name, "rb") as file:
        encrypted_data = file.read()
    
    decrypted_data = fernet.decrypt(encrypted_data)
    
    with open(file_name, "wb") as file:
        file.write(decrypted_data)
    
    print(f"{file_name} has been decrypted.")

Step 4: পূর্ণ কোড একসাথে

from cryptography.fernet import Fernet

# কী জেনারেট করা এবং সংরক্ষণ করা
def generate_key():
    key = Fernet.generate_key()
    with open("secret.key", "wb") as key_file:
        key_file.write(key)

# কী লোড করা
def load_key():
    return open("secret.key", "rb").read()

# ফাইল এনক্রিপ্ট করা
def encrypt_file(file_name):
    key = load_key()
    fernet = Fernet(key)
    
    with open(file_name, "rb") as file:
        file_data = file.read()
    
    encrypted_data = fernet.encrypt(file_data)
    
    with open(file_name, "wb") as file:
        file.write(encrypted_data)
    
    print(f"{file_name} has been encrypted.")

# ফাইল ডিক্রিপ্ট করা
def decrypt_file(file_name):
    key = load_key()
    fernet = Fernet(key)
    
    with open(file_name, "rb") as file:
        encrypted_data = file.read()
    
    decrypted_data = fernet.decrypt(encrypted_data)
    
    with open(file_name, "wb") as file:
        file.write(decrypted_data)
    
    print(f"{file_name} has been decrypted.")

# প্রোগ্রাম চলানোর জন্য নির্দেশাবলী
if __name__ == "__main__":
    generate_key()  # একবার রান করার পরে secret.key ফাইল তৈরি হবে

    # ফাইলের নাম ইনপুট নেয়া
    file_name = input("Enter the file name with extension (e.g., sample.txt): ")

    # অপশন নির্বাচন
    action = input("Enter 'encrypt' to encrypt or 'decrypt' to decrypt the file: ").strip().lower()

    if action == "encrypt":
        encrypt_file(file_name)
    elif action == "decrypt":
        decrypt_file(file_name)
    else:
        print("Invalid option. Please enter either 'encrypt' or 'decrypt'.")

Step 5: প্রোগ্রাম রান করা

প্রোগ্রামটি রান করার জন্য টার্মিনালে নিচের মতো কমান্ড চালান:

python file_encryption_tool.py

প্রথমে, এটি একটি secret.key ফাইল তৈরি করবে, যা এনক্রিপশন এবং ডিক্রিপশনের জন্য প্রয়োজন হবে। এরপর প্রোগ্রামটি ফাইলের নাম এবং অপশন ইনপুট হিসেবে নেবে।

ব্যবহার নির্দেশিকা

Encrypt:

  • ফাইল এনক্রিপ্ট করতে encrypt লিখুন।
  • ইনপুট দেয়া ফাইলটি এনক্রিপ্ট হয়ে যাবে, এবং ফাইলের কন্টেন্ট এনক্রিপটেড হয়ে ফাইলেই লেখা থাকবে।

Decrypt:

  • ফাইল ডিক্রিপ্ট করতে decrypt লিখুন।
  • ইনপুট দেয়া ফাইলটি ডিক্রিপ্ট হয়ে তার মূল কন্টেন্ট ফিরে আসবে।

উদাহরণ

একটি sample.txt ফাইল এনক্রিপ্ট করতে নিচের ধাপগুলো অনুসরণ করুন:

  • প্রথমে ফাইলের নাম লিখুন: sample.txt
  • এরপর অপশন হিসেবে encrypt লিখুন।
  • ফাইল এনক্রিপ্ট হয়ে যাবে এবং কন্টেন্ট এনক্রিপটেড থাকবে।

একই sample.txt ফাইল ডিক্রিপ্ট করতে:

  • ফাইলের নাম লিখুন: sample.txt
  • এরপর অপশন হিসেবে decrypt লিখুন।
  • ফাইল ডিক্রিপ্ট হয়ে আসল কন্টেন্ট ফিরে আসবে।

উপসংহার

এই ফাইল এনক্রিপশন এবং ডিক্রিপশন টুলটি ডেটা সুরক্ষার জন্য গুরুত্বপূর্ণ, এবং Sensitive Data এনক্রিপ্ট করে এটি নিরাপদভাবে সংরক্ষণ করা সম্ভব। এই টুলটি ব্যবহার করে টেক্সট ফাইল, ডকুমেন্ট, ইমেজ এবং অন্যান্য ফাইল এনক্রিপ্ট এবং ডিক্রিপ্ট করা যায়, তবে প্রোগ্রাম ব্যবহার করার সময় সিক্রেট কীটি সংরক্ষণে বিশেষভাবে সতর্ক থাকতে হবে।

Content added By
Promotion

Are you sure to start over?

Loading...