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