python实现安全随机数_使⽤Python⽣成⽤于管理机密的安全
随机数
为了通过密码⽣成安全的随机数,我们可以在python中使⽤secrets模块。此模块有助于创建安全密码,帐户⾝份验证,安全令牌或某些相关机密。
要使⽤secrets模块的类和模块,我们应该将该模块导⼊我们的代码中。import secrets
随机数
该秘密模块⽤于随机访问⼀些安全的来源。这是由操作系统提供的。
与秘密模块的随机数有关的类和函数是-
类的秘密.SystemRandom
这是⼀类通过使⽤⼀些最⾼质量的源⽣成随机数的类。这些源由操作系统提供。
⽅法secrets.choice(sequence)
此⽅法⽤于从⾮空序列中随机选择⼀个元素。
⽅法secrets.randbelow(n)
此⽅法⽤于从0到n(不包括)范围内选择⼀个整数值。
⽅法secrets.randbits(k)
此⽅法⽤于返回具有k个随机位的整数。
⽣成令牌
该秘密模块还可以产⽣⼀些安全令牌。这些类型的令牌可⽤于⽣成密码重置,复杂的URL等。
与令牌⽣成有关的⼀些⽅法是-
⽅法ken_bytes([nbytes = None])
此⽅法返回nbytes的随机字节字符串以⽣成安全令牌。如果未提供nbytes值,则使⽤指定的默认值。
⽅法ken_hex([nbytes = None])
此⽅法以⼗六进制形式返回随机⽂本字符串。返回的字符串具有nbytes个随机字节。每个字符可以转换为两个⼗六进制数字。如果未提供nbytes值,则使⽤指定的默认值。
⽅法ken_urlsafe([nbytes = None])
此⽅法⽤于返回随机的URL安全⽂本字符串。⽂本基本上是Base64编码的。平均每个字节产⽣1.3个字符(⼤约)。
范例程式码import secrets
my_sequence = ['K','?','D',':','o','5','t','l','Y','0']
rand_pass = ''
for i in range(15):
rand_char = secrets.choice(my_sequence)
rand_pass += rand_char
print("Random Password is: " + rand_pass)
my_tok1 = ken_hex(10) #Create HEX token of length 10
python生成1到100之间随机数my_tok2 = ken_hex(5) #Create HEX token of length 5 print("First Token: " + my_tok1)
print("First Token: " + my_tok2)
输出结果Random Password is: YK0l:YD??lKKY?o
First Token: f3e68646dcf1082e1038
First Token: e4ae3c2384

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。