python内置库--secrets
1 关于secrets
secrets 模块用于生成高度加密的随机数,安全性比较高,应用方面有生成安全的随机数、生成密码字符串等
python官方也推荐最好用 secrets 替代 random 模块,random 模块生成的是一种伪随机数,基于系统时钟和其它可预测原理生成,不是真正随机和安全的
2 相关函数和类
class secrets.SystemRandom()
一个class 更安全地生成随机数据的class 。通过这个class,我们可以使用random模块下的所有函数。也就是说,通过这个class random下的而函数也可以像secrets下的函数一样生成安全的随机数
等同于random.SystemRandom()
执行
secrets.choice(sequence)
Return a randomly chosen element from a non-empty sequence.
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'
secrets.token_bytes([nbytes=None])
返回含 nbytes 个字节的随机字节字符串,如果未提供 nbytes,或nbytes为 None,则默认为32字节
secrets.token_hex([nbytes=None])
返回十六进制随机文本字符串。字符串有 nbytes 个随机字节,如果未提供 nbytes,或nbytes为 None,则默认为32字节
secrets.token_urlsafe([nbytes=None])
返回安全的 URL 随机文本字符串,包含 nbytes 个随机字节。文本用 Base64 编码,平均来说,每个字节对应 1.3 个结果字符
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性