ランダムバイトをbytearrayまたはバイトとして取得することをお探しですか、os.urandom
と同じです。Pythonのランダムモジュールを使用して、os.urandomの予測可能な置き換えがありますか?
しかし、値が再現可能になるようにランダムなシードを設定できる必要があります。
def urandom_from_random(rng, length):
return bytes([rng.randint(0, 255) for i in range(length)])
import random
rng = random.Random(42)
data = urandom_from_random(rng, 120)
print(data)
上記のスクリプトは機能しますが、あまり効率的ではありません。
多くのintを作成してバイトに変換するだけでなく、これを行うより直接的な方法はありますか?
注:
- urandomのは、予測可能な結果を返す作りはpossible on Linuxですが、rootアクセスを必要とします。
は 'random.seed(7)'必要とされません。このスクリプトは、そのままの状態で動作し、私の質問を明確にしました。 – ideasman42
ok then random.getrandbits(N)? – Vince