পাসওয়ার্ড জেনারেটর

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

348

পাসওয়ার্ড জেনারেটর একটি প্রোজেক্ট, যা বিভিন্ন ধরণের ক্যারেক্টার ব্যবহার করে র্যান্ডম পাসওয়ার্ড তৈরি করতে সাহায্য করে। Python-এ Tkinter ব্যবহার করে একটি GUI পাসওয়ার্ড জেনারেটর তৈরি করা সম্ভব। এই প্রোজেক্টটি বিশেষ করে তখন কার্যকরী যখন শক্তিশালী পাসওয়ার্ড তৈরি করতে হয়, যা সাধারণ অনুমান করা কঠিন।


প্রজেক্ট: পাসওয়ার্ড জেনারেটর

ফিচারস

  1. ব্যবহারকারী পাসওয়ার্ডের দৈর্ঘ্য নির্ধারণ করতে পারবেন।
  2. পাসওয়ার্ডে কি ধরনের ক্যারেক্টার থাকতে হবে তা নির্ধারণ করতে পারবেন (যেমন, ছোট হাতের অক্ষর, বড় হাতের অক্ষর, সংখ্যা এবং বিশেষ চিহ্ন)।
  3. জেনারেট করা পাসওয়ার্ড একটি টেক্সট বক্সে দেখানো হবে এবং চাইলে পাসওয়ার্ডটি কপি করা যাবে।

প্রয়োজনীয় লাইব্রেরি

  • tkinter: GUI তৈরির জন্য।
  • random: র্যান্ডম পাসওয়ার্ড তৈরি করার জন্য।

Step 1: Tkinter এবং অন্যান্য মডিউল ইম্পোর্ট করা

import tkinter as tk
from tkinter import messagebox
import random
import string

Step 2: Tkinter GUI সেটআপ এবং এন্ট্রি ফিল্ড তৈরি

Tkinter GUI তৈরি করে ব্যবহারকারীকে পাসওয়ার্ডের দৈর্ঘ্য এবং অন্যান্য সেটিংস দিতে পারবেন।

# মেইন Tkinter উইন্ডো তৈরি
root = tk.Tk()
root.title("Password Generator")
root.geometry("400x400")

# পাসওয়ার্ডের দৈর্ঘ্য নির্ধারণের লেবেল এবং এন্ট্রি ফিল্ড
tk.Label(root, text="Password Length:").pack(pady=5)
length_entry = tk.Entry(root, width=5)
length_entry.pack(pady=5)

# পাসওয়ার্ডে ক্যারেক্টার অন্তর্ভুক্ত করার জন্য চেকবক্স
include_uppercase = tk.BooleanVar()
include_numbers = tk.BooleanVar()
include_symbols = tk.BooleanVar()

tk.Checkbutton(root, text="Include Uppercase Letters", variable=include_uppercase).pack(anchor="w")
tk.Checkbutton(root, text="Include Numbers", variable=include_numbers).pack(anchor="w")
tk.Checkbutton(root, text="Include Symbols", variable=include_symbols).pack(anchor="w")

Step 3: পাসওয়ার্ড জেনারেট করার ফাংশন তৈরি

এই ফাংশনটি ব্যবহারকারীর পছন্দমত ক্যারেক্টার অন্তর্ভুক্ত করে একটি র্যান্ডম পাসওয়ার্ড তৈরি করবে।

def generate_password():
    try:
        length = int(length_entry.get())
        if length <= 0:
            raise ValueError("Length must be positive")
        
        characters = string.ascii_lowercase
        if include_uppercase.get():
            characters += string.ascii_uppercase
        if include_numbers.get():
            characters += string.digits
        if include_symbols.get():
            characters += string.punctuation
        
        if not characters:
            messagebox.showwarning("Warning", "Please select at least one character type.")
            return
        
        password = ''.join(random.choice(characters) for i in range(length))
        password_entry.delete(0, tk.END)
        password_entry.insert(0, password)
    except ValueError:
        messagebox.showerror("Error", "Please enter a valid length.")

Step 4: কপি টু ক্লিপবোর্ড ফাংশন

এই ফাংশনটি জেনারেট করা পাসওয়ার্ডটি ক্লিপবোর্ডে কপি করবে।

def copy_to_clipboard():
    password = password_entry.get()
    if password:
        root.clipboard_clear()
        root.clipboard_append(password)
        messagebox.showinfo("Copied", "Password copied to clipboard!")
    else:
        messagebox.showwarning("Warning", "No password to copy.")

Step 5: GUI উইজেট এবং বাটন তৈরি

Tkinter GUI-তে পাসওয়ার্ড জেনারেটর এবং কপি বাটন তৈরি করুন।

# পাসওয়ার্ড দেখানোর জন্য এন্ট্রি ফিল্ড
password_entry = tk.Entry(root, font=("Arial", 14), width=25)
password_entry.pack(pady=10)

# পাসওয়ার্ড জেনারেটর বাটন
generate_button = tk.Button(root, text="Generate Password", command=generate_password, font=("Arial", 12))
generate_button.pack(pady=10)

# কপি বাটন
copy_button = tk.Button(root, text="Copy to Clipboard", command=copy_to_clipboard, font=("Arial", 12))
copy_button.pack(pady=10)

Step 6: Tkinter মেইন লুপ চালানো

root.mainloop()

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

import tkinter as tk
from tkinter import messagebox
import random
import string

# মেইন Tkinter উইন্ডো তৈরি
root = tk.Tk()
root.title("Password Generator")
root.geometry("400x400")

# পাসওয়ার্ডের দৈর্ঘ্য নির্ধারণের লেবেল এবং এন্ট্রি ফিল্ড
tk.Label(root, text="Password Length:").pack(pady=5)
length_entry = tk.Entry(root, width=5)
length_entry.pack(pady=5)

# পাসওয়ার্ডে ক্যারেক্টার অন্তর্ভুক্ত করার জন্য চেকবক্স
include_uppercase = tk.BooleanVar()
include_numbers = tk.BooleanVar()
include_symbols = tk.BooleanVar()

tk.Checkbutton(root, text="Include Uppercase Letters", variable=include_uppercase).pack(anchor="w")
tk.Checkbutton(root, text="Include Numbers", variable=include_numbers).pack(anchor="w")
tk.Checkbutton(root, text="Include Symbols", variable=include_symbols).pack(anchor="w")

# পাসওয়ার্ড জেনারেট করার ফাংশন
def generate_password():
    try:
        length = int(length_entry.get())
        if length <= 0:
            raise ValueError("Length must be positive")
        
        characters = string.ascii_lowercase
        if include_uppercase.get():
            characters += string.ascii_uppercase
        if include_numbers.get():
            characters += string.digits
        if include_symbols.get():
            characters += string.punctuation
        
        if not characters:
            messagebox.showwarning("Warning", "Please select at least one character type.")
            return
        
        password = ''.join(random.choice(characters) for i in range(length))
        password_entry.delete(0, tk.END)
        password_entry.insert(0, password)
    except ValueError:
        messagebox.showerror("Error", "Please enter a valid length.")

# কপি টু ক্লিপবোর্ড ফাংশন
def copy_to_clipboard():
    password = password_entry.get()
    if password:
        root.clipboard_clear()
        root.clipboard_append(password)
        messagebox.showinfo("Copied", "Password copied to clipboard!")
    else:
        messagebox.showwarning("Warning", "No password to copy.")

# পাসওয়ার্ড দেখানোর জন্য এন্ট্রি ফিল্ড
password_entry = tk.Entry(root, font=("Arial", 14), width=25)
password_entry.pack(pady=10)

# পাসওয়ার্ড জেনারেটর বাটন
generate_button = tk.Button(root, text="Generate Password", command=generate_password, font=("Arial", 12))
generate_button.pack(pady=10)

# কপি বাটন
copy_button = tk.Button(root, text="Copy to Clipboard", command=copy_to_clipboard, font=("Arial", 12))
copy_button.pack(pady=10)

root.mainloop()

কোড ব্যাখ্যা

  1. Length Entry Field: পাসওয়ার্ডের দৈর্ঘ্য ইনপুট নেওয়ার জন্য একটি ইনপুট ফিল্ড আছে।
  2. Character Type Checkbox: ক্যারেক্টারের ধরন (বড় হাতের অক্ষর, সংখ্যা, এবং বিশেষ চিহ্ন) সিলেক্ট করার জন্য চেকবক্স আছে।
  3. generate_password() Function: এই ফাংশনটি ব্যবহারকারীর ইচ্ছা অনুযায়ী পাসওয়ার্ড তৈরি করে এবং ইনপুট ফিল্ডে প্রদর্শন করে।
  4. copy_to_clipboard() Function: তৈরি করা পাসওয়ার্ডটি ক্লিপবোর্ডে কপি করে।
  5. Buttons: পাসওয়ার্ড জেনারেট এবং কপি করার জন্য পৃথক দুটি বাটন রয়েছে।

উপসংহার

এই পাসওয়ার্ড জেনারেটর অ্যাপটি একটি কার্যকরী টুল যা নিরাপদ ও শক্তিশালী পাসওয়ার্ড তৈরি করতে ব্যবহার করা যায়। এটি সহজে কাস্টমাইজ করা যায় এবং আরও ফিচার যেমন পাসওয়ার্ড শক্তি যাচাই বা সংরক্ষণ ফিচার যুক্ত করা সম্ভব।

Content added By
Promotion

Are you sure to start over?

Loading...