我需要生成一些象徵性的,只能採取一個字符範圍,[a-zA-Z0-9_]
的/ dev/urandom的範圍
我試圖用binascii.b2a_base64(os.urandom(64))
工作,其中有諸如+其他字符,並導致問題。
/dev/urandom
(我在linux上)的範圍是什麼,這樣我就可以將輸出整數映射到一個統一的值。
我需要生成一些象徵性的,只能採取一個字符範圍,[a-zA-Z0-9_]
的/ dev/urandom的範圍
我試圖用binascii.b2a_base64(os.urandom(64))
工作,其中有諸如+其他字符,並導致問題。
/dev/urandom
(我在linux上)的範圍是什麼,這樣我就可以將輸出整數映射到一個統一的值。
它生成字節,所以0x00到0xFF(含)。
/dev/urandom
只是提供隨機字節。您讀取的每個字節在範圍0
到255
之間,希望均勻分佈。
處理當前問題的一種簡單方法是過濾出+
和=
字符。在shell中它將是... | tr -d += | ...
。我不知道最Pythonic的方法,但這似乎工作:
>>> import re
>>> re.sub(r'\+|=', '', "abcdef+=")
'abcdef'
好吧。我跑了測試,但我只是想確定。現在,我必須將62個字符統一放入256個數字中。 – Pwnna
我會進一步限制範圍,以便在字符數和256之間獲得較低的LCM。 –
除以4和[重滾63的](http:/ /en.wikipedia.org/wiki/Rejection_sampling)? –