Python生成随机的128位字符串

时间:2013-04-27 02:29:08

标签: python random bits

我需要生成几个随机字符串,以便以后使用长度为128位(或16字节,32个字符)。 我直到现在才使用它:

random.getrandbits(128)

不幸的是,事实证明有时它不会产生16个字节,这是我实现的要求,因此有些字符串比其他字符串短,这是一个问题。

还有另一种方法可以达到这个目的吗?

2 个答案:

答案 0 :(得分:4)

>>> import os
>>> os.urandom(16)
'S\x0e\xac\x91m\xcf\xf1\xae\x9b5\xf9A\xf3\xa2\xf9@'

答案 1 :(得分:0)

此方法应一致地从伪随机的128位整数生成可打印的 32个字符串:

>>> import base64
>>> import random

>>> base64.b16encode(random.getrandbits(128).to_bytes(16, byteorder='little')).encode()
'F9979BA22661180539D2081D30A09275'