python内置库--secrets

1 关于secrets

secrets 模块用于生成高度加密的随机数,安全性比较高,应用方面有生成安全的随机数、生成密码字符串等
python官方也推荐最好用 secrets 替代 random 模块,random 模块生成的是一种伪随机数,基于系统时钟和其它可预测原理生成,不是真正随机和安全的

2 相关函数和类

class secrets.SystemRandom()

一个class 更安全地生成随机数据的class 。通过这个class,我们可以使用random模块下的所有函数。也就是说,通过这个class random下的而函数也可以像secrets下的函数一样生成安全的随机数
等同于random.SystemRandom()

image
执行
image

secrets.choice(sequence)

Return a randomly chosen element from a non-empty sequence.
image

secrets.randbelow(n)

返回 [0, n) 范围内的随机整数。

secrets.randbits(k)

返回一个整数, 该整数具有k随机比特

# 大小写字母+数子0-9
letters_and_num = string.ascii_letters + string.digits
# letters_and_num中随机挑选8个数据,组成字符串
pwd = ''.join(secrets.choice(letters_and_num) for i in range(8))

结果

'EhvueUUr'

image

secrets.token_bytes([nbytes=None])
返回含 nbytes 个字节的随机字节字符串,如果未提供 nbytes,或nbytes为 None,则默认为32字节
image

secrets.token_hex([nbytes=None])
返回十六进制随机文本字符串。字符串有 nbytes 个随机字节,如果未提供 nbytes,或nbytes为 None,则默认为32字节

image

secrets.token_urlsafe([nbytes=None])
返回安全的 URL 随机文本字符串,包含 nbytes 个随机字节。文本用 Base64 编码,平均来说,每个字节对应 1.3 个结果字符
image

posted @   工作手记  阅读(711)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示