را

رازها در Python

{one: "۱ تمرین", other: "%{count} تمرین"}

درباره‌ی رازها

در مفهومی پیشین درباره‌ی ماژول 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'

اگر برنامه‌هایی می‌نویسید که به امنیت حساس‌اند، قطعاً می‌خواهید مستندات کامل را بخوانید که توصیه‌ها و مثال‌های بیشتری ارائه می‌دهد.

ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود