secrets是python3.6加入到标准库的,使用secrets模块,可以生成适用于处理机密信息(如密码,帐户身份验证,安全令牌)的加密强随机数。
import secrets
它是使用OS提供的最高质量源生成随机数的类。 有关更多详细信息,请参阅random.SystemRandom。
secrets.SystemRandom() <random.SystemRandom at 0x7fd537094418>
从非空序列中选择一个元素。
secrets.choice([23,3,5,6])
[0,n) 取0-n之间的整数
secrets.randbelow(10) 6
随机k位整数。(不知道啥意思)
secrets.randbits(10) 426
secret模块还提供用于生成适合于重置密码和难以想象的URL的安全令牌的功能。
secrets.token_bytes(nbytes=10) b'\xca\xfeQ\x03&\x8b7\xd7&\xaf'
返回包含nbytes个字节的字节字符串。 如果nbytes为None或未给出,则使用有效的默认值。
返回十六进制随机文本字符串。 该字符串有n个字节的随机字节,每个字节转换为两个十六进制数字。 如果nbytes为None或未给出,则使用有效的默认值。
secrets.token_hex() '494ee83c2a42ce3dc488b059eb64a50628667e9f2c939a87672d3d6a1748252a'
返回随机字节为nbytes的URL安全文本字符串。 文本以Base64编码,每个字节平均约为1.3个字符。 如果nbytes为None或未给出,则使用有效的默认值。
secrets.token_urlsafe() 'giZFsPv9ch4OGWvuqihEIkj0LwOsHDOjgGHoqDeTvb8'
字符串比较的安全方式,减少攻击风险。
secrets.compare_digest("e","E") False
原文链接:https://www.cnblogs.com/c-x-a/p/10141772.html