Python os.urandom() 函数用于生成一个指定长度的随机字节串。它可以作为加密、哈希、签名等安全应用的种子、随机数、密钥等。
os.urandom() 函数的语法如下:
os.urandom(n)
其中,n 表示需要生成的随机字节串的长度。生成的随机字节串会以二进制形式返回。
使用 os.urandom() 函数前,需要先导入 os 模块,如下所示:
import os
以下是 os.urandom() 函数的使用示例:
import os
# 生成一个长度为 10 的随机字节串
bytes1 = os.urandom(10)
print(bytes1)
# 生成一个长度为 20 的随机字节串
bytes2 = os.urandom(20)
print(bytes2)
结果如下所示:
b'\xc6\x85\xfa\x8c\xab\'e\xaa\x05C'
b"\xb6\x925\xb0\xb1G\xc1\x9e\x0e\xf4\x8d\x95\xf3q\xd4\xc4_\x0bG}"
注意,os.urandom() 函数生成的字节串是不可打印的,只能用于加密、哈希、签名等应用。
在使用 os.urandom() 函数生成随机数时,可以将生成的字节串转换为整数,然后根据需要进行取模等操作。以下是一个将 os.urandom() 函数生成的字节串转换为整数的示例:
import os
# 生成一个 1 到 100 之间的随机整数
max_num = 100
rand_int = int.from_bytes(os.urandom(1), byteorder='big') % max_num + 1
print(rand_int)
以上代码通过将 os.urandom() 函数生成的 1 个字节的字节串转换为整数,再取模得到 1 到 100 之间的随机整数。注意,由于 Python 默认采用小端字节序,因此需要将 byteorder 参数设置为 'big'。