Python random.randbytes() 函数用于生成 n 个随机字节。此函数是 random 模块的一部分,该模块提供各种函数来生成随机数和序列。此函数的主要用途是创建随机字节序列,这在各种应用中非常有用,例如测试、模拟或任何需要随机二进制数据的情况。
但是,请务必注意,此功能不应用于生成安全令牌或加密密钥,因为它不保证加密安全性。为此,您可以使用 secrets.token_bytes()。
这个函数不能直接访问,所以我们需要导入 random 模块,然后我们需要使用 random 静态对象调用这个函数。
语法
以下是 Python random.randbytes() 函数的语法 -
random.randbytes(n)
参数
此函数接受以下参数 -
- n − 要生成的字节的大小。
返回值
此函数返回随机生成的指定大小的字节序列。
示例 1
让我们看一个如何使用 Python random.randbytes() 函数生成 8 个随机字节的示例。
import random
random_bytes = random.randbytes(8)
print(random_bytes)
当我们运行上述程序时,它会产生以下结果——
b'\xc7\xf8E\x8a\xa4\xb7\xa4\x90'
示例 2
此示例生成一个随机十六进制数,这里我们使用 random.randbytes() 函数创建一个随机字节序列,然后将它们转换为十六进制字符串。
import random
# Generate 8 random bytes
random_bytes = random.randbytes(8)
# Convert bytes to hexadecimal string
random_hex = random_bytes.hex()
print(random_hex)
上述代码的输出如下 -
08f3000d23c7f2be
示例 3
这是另一个使用 random.randbytes() 函数生成随机字节的示例,然后使用 bytes.hex() 函数将生成的随机字节转换为十六进制字符串,最后交换十六进制字符串的大小写。
import random
# Generate 2 random bytes
random_bytes = random.randbytes(2)
print("2 random Bytes",random_bytes)
# Convert bytes to hexadecimal string
random_hex = random_bytes.hex()
print("Hexadecimal string",random_hex)
# Swap the case of hexadecimal string
result = random_hex.swapcase()
print("Output hexadecimal string", result)
以下是上述代码的输出 -
2 random Bytes b'\xa6\xc0'
Hexadecimal string a6c0
Output hexadecimal string A6C0
Hexadecimal string a6c0
Output hexadecimal string A6C0