zoukankan      html  css  js  c++  java
  • 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'xcaxfeQx03&x8b7xd7&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
    
  • 相关阅读:
    lambda表达式
    解读Raft(一 算法基础)
    译《Time, Clocks, and the Ordering of Events in a Distributed System》
    如何在MQ中实现支持任意延迟的消息?
    读Kafka Consumer源码
    2017上海QCon之旅总结(下)
    2017上海QCon之旅总结(中)
    2017上海QCon之旅总结(上)
    什么是WAL?
    Push or Pull?
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10141772.html
Copyright © 2011-2022 走看看