我需要生成一些只能使用一系列字符的令牌[a-zA-Z0-9_]
我正在尝试使用binascii.b2a_base64(os.urandom(64))
,其中包含其他字符,例如+,会导致问题。
/dev/urandom
(我在Linux上)的范围是什么,以便我可以自己统一地将输出整数映射到一个值。
答案 0 :(得分:4)
它生成字节,因此包括0x00到0xFF。
答案 1 :(得分:1)
/dev/urandom
只提供随机字节。您阅读的每个字节都在0
到255
的范围内,希望均匀分布。
处理当前问题的一种简单方法是过滤掉+
和=
个字符。在shell中它是... | tr -d += | ...
。我不知道最恐怖的方法,但这似乎有效:
>>> import re
>>> re.sub(r'\+|=', '', "abcdef+=")
'abcdef'