我需要生成几个随机字符串,以便以后使用长度为128位(或16字节,32个字符)。 我直到现在才使用它:
random.getrandbits(128)
不幸的是,事实证明有时它不会产生16个字节,这是我实现的要求,因此有些字符串比其他字符串短,这是一个问题。
还有另一种方法可以达到这个目的吗?
答案 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'