এই আর্টিকেলে আমরা দেখব কিভাবে সিকিউর র্যান্ডম নম্বর জেনারেট করা যায় যা পাসওয়ার্ড হিসেবে কার্যকরভাবে ব্যবহার করা যায়। র্যান্ডম নম্বরের পাশাপাশি আমরা লেটার এবং অন্যান্য ক্যারেক্টারও যোগ করতে পারি যাতে এটি আরও ভালো হয়।
secrets মডিউলের সাথে
secrets মডিউলের choice ফাংশনটি ব্যবহার করে ফর লুপ এবং range ফাংশন দিয়ে প্রয়োজনীয় দৈর্ঘ্যের পাসওয়ার্ড জেনারেট করা যায়।
উদাহরণ
import secrets
import string
allowed_chars = string.ascii_letters + string.digits + string.printable
pswd = ''.join(secrets.choice(allowed_chars) for i in range(8))
print("The generated password is: \n", pswd)
আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফলটি মিলবে −
The generated password is: $pB7WY
কমপক্ষে কন্ডিশনের সাথে
আমরা পাসওয়ার্ড জেনারেটরে লোয়ারকেস এবং আপারকেস লেটারসহ ডিজিট থাকতে বাধ্য করতে পারি। এখানও secrets মডিউল ব্যবহার করা হয়।
উদাহরণ
import secrets
import string
allowed_chars = string.ascii_letters + string.digits + string.printable
while True:
pswd = ''.join(secrets.choice(allowed_chars) for i in range(8))
if (any(c.islower() for c in pswd) and
any(c.isupper() for c in pswd) and
sum(c.isdigit() for c in pswd) >= 3):
print("The generated pswd is: \n", pswd)
break
আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফলটি মিলবে −
The generated pswd is: p7$7nS2w
র্যান্ডম টোকেন
URL ডিলিং করার সময় যদি URL-এ একটি র্যান্ডম টোকেন থাকতে চান তবে secrets মডিউলের নিচের মেথডগুলো ব্যবহার করা যায়।
উদাহরণ
import secrets
# একটি র্যান্ডম বাইট স্ট্রিং
tkn1 = secrets.token_bytes(8)
# হেক্সাডেসিমেলে একটি র্যান্ডম টেক্সট স্ট্রিং
tkn2 = secrets.token_hex(8)
# র্যান্ডম URL-সেফ টেক্সট স্ট্রিং
url = 'https://thename.com/reset=' + secrets.token_urlsafe()
print("A random byte string:\n", tkn1)
print("A random text string in hexadecimal: \n", tkn2)
print("A text string with url-safe token: \n", url)
আউটপুট
উপরের কোডটি রান করলে নিচের ফলাফলটি মিলবে −
A random byte string: b'\x0b-\xb2\x13\xb0Z#\x81' A random text string in hexadecimal: d94da5763fce71a3 A text string with url-safe token: https://thename.com/reset=Rd8eVookY54Q7aTipZfdmz-HS62rHmRjSAXumZdNITo