python標准庫之secrets


secrets

secrets是python3.6加入到標准庫的,使用secrets模塊,可以生成適用於處理機密信息(如密碼,帳戶身份驗證,安全令牌)的加密強隨機數。

導入

import secrets

SystemRandom

它是使用OS提供的最高質量源生成隨機數的類。 有關更多詳細信息,請參閱random.SystemRandom。


secrets.SystemRandom()
<random.SystemRandom at 0x7fd537094418>

choice(sequence)

從非空序列中選擇一個元素。

secrets.choice([23,3,5,6])

randbelow

[0,n) 取0-n之間的整數

secrets.randbelow(10)
6

randbits(k)

隨機k位整數。(不知道啥意思)

secrets.randbits(10)
426

生成token

secret模塊還提供用於生成適合於重置密碼和難以想象的URL的安全令牌的功能。

token_bytes

secrets.token_bytes(nbytes=10)
b'\xca\xfeQ\x03&\x8b7\xd7&\xaf'

返回包含nbytes個字節的字節字符串。 如果nbytes為None或未給出,則使用有效的默認值。

token_hex

返回十六進制隨機文本字符串。 該字符串有n個字節的隨機字節,每個字節轉換為兩個十六進制數字。 如果nbytes為None或未給出,則使用有效的默認值。

secrets.token_hex()
'494ee83c2a42ce3dc488b059eb64a50628667e9f2c939a87672d3d6a1748252a'

token_urlsafe

返回隨機字節為nbytes的URL安全文本字符串。 文本以Base64編碼,每個字節平均約為1.3個字符。 如果nbytes為None或未給出,則使用有效的默認值。

secrets.token_urlsafe()
'giZFsPv9ch4OGWvuqihEIkj0LwOsHDOjgGHoqDeTvb8'

compare_digest

字符串比較的安全方式,減少攻擊風險。

secrets.compare_digest("e","E")
False


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM