Random Number Generation In Python
Is this a valid way to generate
n random bytes that are cryptographically random?
def cryptographically_secure_random_bytes(n): return ''.join(chr(random.SystemRandom().randint(0,256)) for _ in range(n))
random.SystemRandom() is the same as
os.urandom(), and I know that
os.urandom() is definitely a cryptographically secure way of generating random numbers.
chr(random.SystemRandom().randint(0,256)) part throws me off a bit. Since
chr() doesn't support unicode, I'm assuming that this function is discarding some characters that would otherwise be produced by
I'm not sure what to think of
randint(0,256) either, since that is the size of a byte.
Return a random integer N such that a <= N <= b. Alias for randrange(a, b+1).
So it is inclusive you could get something bigger than a byte.
- → What are the pluses/minuses of different ways to configure GPIOs on the Beaglebone Black?
- → Django, code inside <script> tag doesn't work in a template
- → React - Django webpack config with dynamic 'output'
- → GAE Python app - Does URL matter for SEO?
- → Put a Rendered Django Template in Json along with some other items
- → session disappears when request is sent from fetch
- → Python Shopify API output formatted datetime string in django template
- → Shopify app: adding a new shipping address via webhook
- → Shopify + Python library: how to create new shipping address
- → shopify python api: how do add new assets to published theme?
- → Access 'HTTP_X_SHOPIFY_SHOP_API_CALL_LIMIT' with Python Shopify Module