আগের একটি কনসেপ্টে random মডিউল নিয়ে আলোচনা করা হয়েছে, যা সিউডো-র্যান্ডম সংখ্যা এবং সিউডো-র্যান্ডম তালিকার ক্রম তৈরি করে।
secrets মডিউলের কিছু কাজ random-এর সঙ্গে মিলে যায়, তবে দুটি মডিউল完全不同 অগ্রাধিকার নিয়ে তৈরি করা হয়েছে।
random মডেলিং ও সিমুলেশনে উচ্চ পারফরম্যান্সের জন্য অপ্টিমাইজ করা, যেখানে সিউডো-র্যান্ডম সংখ্যা তৈরি "যথেষ্ট ভালো" হলেই চলে।secrets ক্রিপ্টোগ্রাফিকভাবে নিরাপদ হওয়ার জন্য তৈরি, যেমন পাসওয়ার্ড হ্যাশিং, সিকিউরিটি টোকেন তৈরি এবং অ্যাকাউন্ট প্রমাণীকরণের মতো কাজে।secrets মডিউল যুক্ত করা কেন প্রয়োজন হয়ে পড়ল, তার বিস্তারিত ব্যাখ্যা PEP 506-এ আছে।
secrets মডিউলটি তুলনামূলকভাবে ছোট ও সহজ, এতে র্যান্ডম ইন্টিজার, বিট, বাইট, টোকেন, বা একটি নির্দিষ্ট সিকোয়েন্স থেকে র্যান্ডম এলিমেন্ট বেছে নেওয়ার মেথড আছে।
secrets ব্যবহার করতে হলে প্রথমে এটি import করতে হবে:
>>> import secrets
# Returns n, where 0 <= n < 1000.
>>> secrets.randbelow(1000)
577
# 32-bit integers.
>>> secrets.randbits(32)
3028709440
>>> bin(secrets.randbits(32))
'0b11111000101100101111110011110100'
# Pick at random from a sequence.
>>> secrets.choice(['my', 'secret', 'thing'])
'thing'
# Generate a token made up of random hexadecimal digits.
>>> secrets.token_hex()
'f683d093ea9aa1f2607497c837cf11d7afaefa903c5805f94b64f068e2b9e621'
# Generate a URL-safe token of random alphanumeric characters.
>>> secrets.token_urlsafe(16)
'gkSUKRdiPDHqmImPi2HMnw'
আপনি যদি নিরাপত্তা-সংবেদনশীল অ্যাপ্লিকেশন লিখে থাকেন, তাহলে পূর্ণ ডকুমেন্টেশন পড়ে দেখতে চাইবেন নিশ্চয়ই, সেখানে আরও পরামর্শ ও উদাহরণ আছে।