11

に関する完全なチュートリアルまたはドキュメントはどこにありos.urandomますか? 80 文字の文字列から char を選択するには、ランダムな int を取得する必要があります。

4

2 に答える 2

19

ランダムな整数だけが必要な場合はrandom.randint(a, b)、 random モジュールから使用できます。

暗号化の目的で必要な場合はrandom.SystemRandom().randint(a, b)、 を使用しos.urandom()ます。

import random

r = random.SystemRandom()
s = "some string"
print(r.choice(s)) # print random character from the string
print(s[r.randrange(len(s))]) # same
于 2012-11-04T07:59:44.977 に答える
9

あまり話題になっていないかもしれませんが、検索エンジンからここに来る方の参考になれば幸いです。os.urandom整数に変換するには、これを使用しています:

 import os

 rand = int(int(str(os.urandom(4), encoding="UTF-8")).encode('hex'), 16)
 # You can then 'cycle' it against the length.
 rand_char = chars_list[rand % 80] # or maybe '% len(chars_list)'

注:ここでのインデックスの範囲は、4 バイト整数の範囲までです。4それ以上の値が必要な場合は、 をより大きな値に変更します。

アイデアはここから取られました: https://pythonadventures.wordpress.com/2013/10/04/generate-a-192-bit-random-number/

于 2015-03-07T12:53:21.580 に答える