/ dev / urandom range

时间:2012-06-21 21:29:25

标签: python linux random cryptography

我需要生成一些只能使用一系列字符的令牌[a-zA-Z0-9_]

我正在尝试使用binascii.b2a_base64(os.urandom(64)),其中包含其他字符,例如+,会导致问题。

/dev/urandom(我在Linux上)的范围是什么,以便我可以自己统一地将输出整数映射到一个值。

2 个答案:

答案 0 :(得分:4)

它生成字节,因此包括0x00到0xFF。

答案 1 :(得分:1)

/dev/urandom只提供随机字节。您阅读的每个字节都在0255的范围内,希望均匀分布。

处理当前问题的一种简单方法是过滤掉+=个字符。在shell中它是... | tr -d += | ...。我不知道最恐怖的方法,但这似乎有效:

>>> import re
>>> re.sub(r'\+|=', '', "abcdef+=")
'abcdef'