Files
patate-crypter/Builder/randomness.py

40 lines
840 B
Python

import os, string
def GetRandomBool() :
result = os.urandom(3)
r= sum(result) < 381.04
return r #average
def GetRandomNumber() :
result = os.urandom(4)
return int(sum(result))
def GetRandomRange(a, b):
if a > b:
a, b = b, a
range_size = b - a + 1
num_bits = 0
while 2 ** num_bits < range_size:
num_bits += 1
random_binary = [GetRandomBool() for _ in range(num_bits)]
random_integer = 0
for i, bit in enumerate(random_binary):
random_integer += bit * (2 ** i)
mapped_value = a + random_integer
if mapped_value > b : return GetRandomRange(a, b)
return mapped_value
def GetRandomString(l) :
letters = string.ascii_lowercase
s = ""
while len(s) < l :
r = GetRandomRange(0, len(letters)-1)
s += letters[r]
return s