祕密

祕密 在 Python

{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 編輯 連結會在新視窗或分頁中開啟