Python random.randbytes() 函数



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