为了通过密码生成安全的随机数,我们可以在python中使用secrets模块。此模块有助于创建安全密码,帐户身份验证,安全令牌或某些相关机密。
要使用secrets模块的类和模块,我们应该将该模块导入我们的代码中。
import secrets
该秘密模块用于随机访问一些安全的来源。这是由操作系统提供的。
与秘密模块的随机数有关的类和函数是-
这是一类通过使用一些最高质量的源生成随机数的类。这些源由操作系统提供。
此方法用于从非空序列中随机选择一个元素。
此方法用于从0到n(不包括)范围内选择一个整数值。
此方法用于返回具有k个随机位的整数。
该秘密模块还可以产生一些安全令牌。这些类型的令牌可用于生成密码重置,复杂的URL等。
与令牌生成有关的一些方法是-
此方法返回nbytes的随机字节字符串以生成安全令牌。如果未提供nbytes值,则使用指定的默认值。
此方法以十六进制形式返回随机文本字符串。返回的字符串具有nbytes个随机字节。每个字符可以转换为两个十六进制数字。如果未提供nbytes值,则使用指定的默认值。
此方法用于返回随机的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 = secrets.token_hex(10) #Create HEX token of length 10 my_tok2 = secrets.token_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