ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত র্যান্ডম নম্বর তৈরি করতে আমরা গোপন ব্যবহার করতে পারি পাইথনে মডিউল। এই মডিউলটি সুরক্ষিত পাসওয়ার্ড, অ্যাকাউন্ট প্রমাণীকরণ, নিরাপত্তা টোকেন বা কিছু সম্পর্কিত গোপনীয়তা তৈরি করতে সহায়ক৷
সিক্রেট মডিউলের ক্লাস এবং মডিউলগুলি ব্যবহার করতে, আমাদের সেই মডিউলটিকে আমাদের কোডে আমদানি করা উচিত৷
import secrets
এলোমেলো সংখ্যাগুলি
গোপন রহস্য মডিউলটি এলোমেলোতার কিছু নিরাপদ উত্স অ্যাক্সেস করতে ব্যবহৃত হয়। এটি অপারেটিং সিস্টেম দ্বারা সরবরাহ করা হয়৷
৷ক্লাস এবং ফাংশন, গোপনীয় মডিউলগুলির এলোমেলো সংখ্যার সাথে সম্পর্কিত হল −
ক্লাস সিক্রেটস। সিস্টেম র্যান্ডম
এটি কিছু সর্বোচ্চ মানের উত্স ব্যবহার করে এলোমেলো সংখ্যা তৈরি করার একটি শ্রেণী। এই উত্সগুলি অপারেটিং সিস্টেম দ্বারা সরবরাহ করা হয়৷
৷পদ্ধতি secrets.choice(sequence)
এলোমেলোভাবে অ-খালি ক্রম থেকে একটি উপাদান বেছে নিতে এই পদ্ধতিটি ব্যবহার করা হয়।
পদ্ধতি secrets.randbelow(n)
এই পদ্ধতিটি 0 থেকে n (এক্সক্লুসিভ) পরিসর থেকে একটি পূর্ণসংখ্যার মান বেছে নিতে ব্যবহৃত হয়।
পদ্ধতি secrets.randbits(k)
এই পদ্ধতিটি র্যান্ডম বিটের k সংখ্যা সহ একটি পূর্ণসংখ্যা ফেরাতে ব্যবহৃত হয়।
টোকেন তৈরি করা হচ্ছে
গোপন রহস্য মডিউল কিছু সুরক্ষিত টোকেনও তৈরি করতে পারে। এই ধরনের টোকেন পাসওয়ার্ড রিসেট, জটিল URL ইত্যাদি তৈরি করতে উপযোগী।
কিছু পদ্ধতি, টোকেন জেনারেশন সম্পর্কিত, হল −
পদ্ধতি secrets.token_bytes([nbytes=None])
নিরাপদ টোকেন তৈরি করতে এই পদ্ধতিটি এনবাইট সহ একটি এলোমেলো বাইট স্ট্রিং প্রদান করে। যখন nbytes মান দেওয়া হয় না, এটি একটি নির্দিষ্ট ডিফল্ট মান ব্যবহার করে।
পদ্ধতি secrets.token_hex([nbytes=None])
এই পদ্ধতিটি হেক্সাডেসিমেল আকারে একটি এলোমেলো পাঠ্য স্ট্রিং প্রদান করে। প্রত্যাবর্তিত স্ট্রিং nbytes র্যান্ডম বাইট আছে. প্রতিটি অক্ষর দুটি হেক্স ডিজিটে রূপান্তর করা যেতে পারে। যখন nbytes মান দেওয়া হয় না, এটি একটি নির্দিষ্ট ডিফল্ট মান ব্যবহার করে।
পদ্ধতি secrets.token_urlsafe([nbytes=None])
এই পদ্ধতিটি একটি এলোমেলো URL-নিরাপদ টেক্সট স্ট্রিং ফেরাতে ব্যবহৃত হয়। পাঠ্যটি মূলত বেস64 এনকোডেড। গড়ে প্রতিটি বাইটের ফলাফল 1.3 অক্ষর (প্রায়)।
উদাহরণ কোড
import secrets my_sequence = ['K','?','D',':','o','5','t','l','Y','0'] rand_pass = '' for i in range(15): rand_char = secrets.choice(my_sequence) rand_pass += rand_char print("Random Password is: " + rand_pass) my_tok1 = secrets.token_hex(10) #Create HEX token of length 10 my_tok2 = secrets.token_hex(5) #Create HEX token of length 5 print("First Token: " + my_tok1) print("First Token: " + my_tok2)
আউটপুট
Random Password is: YK0l:YD??lKKY?o First Token: f3e68646dcf1082e1038 First Token: e4ae3c2384