Python - 如何创建一个 8 字节长的随机字符串? [复制]

Posted

技术标签:

【中文标题】Python - 如何创建一个 8 字节长的随机字符串? [复制]【英文标题】:Python - how to create a random string 8 bytes long? [duplicate] 【发布时间】:2012-07-20 13:22:24 【问题描述】:

可能重复:python random string generation with upper case letters and digits

我需要在 python 中创建一个 8 字节长的随机字符串。

rand_string = ?

我该怎么做?

谢谢

【问题讨论】:

不是与python random string generation with upper case letters and digits 的副本。这个问题想要一个随机字节串,而另一个问题想要一个具有有限字符集的随机字符串。 【参考方案1】:

os.urandom 正好提供了这个接口。

如果你想使用random 模块(为了确定性随机性,或者因为平台碰巧没有实现os.urandom),你必须自己构造函数:

import random
def randomBytes(n):
    return bytearray(random.getrandbits(8) for i in range(n))

在 Python 3.x 中,您可以仅将 bytearray 替换为 bytes,但在大多数情况下,bytearray 的行为应该类似于 bytes 对象。

【讨论】:

【参考方案2】:
import os
rand_string = os.urandom(8)

将创建一个 8 个字符长的随机字符串。

【讨论】:

不,它会创建一个 8 字节长的字符串。 “字符”是一个解释问题。

以上是关于Python - 如何创建一个 8 字节长的随机字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何用两个字符串生成一个唯一的数字

Python编码格式

如何创建一个包含 20 个随机字节的数组?

机器字长,存储字长,字节

python全栈考试

如何区分按字节编址与按字编址