我需要生成多个长度为128位(或16字节、32字符)的随机字符串,以备后续使用。目前我一直使用以下方法:
hex(random.getrandbits(128))[2:]
很遗憾,事实证明该方法不能始终生成32个字符,而我的实现需要这么做。它会产生一些比其他字符串短的字符串,例如30或31个字符,这是个问题。
是否有其他方法可以实现这一目标?
>>> import os
>>> os.urandom(16)
'S\x0e\xac\x91m\xcf\xf1\xae\x9b5\xf9A\xf3\xa2\xf9@'
>>> import base64
>>> import random
>>> base64.b16encode(random.getrandbits(128).to_bytes(16, byteorder='little')).encode()
'F9979BA22661180539D2081D30A09275'