CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) functions:
os.urandom(n): return a string of n random bytes.random.SystemRandom(): provides random functions that usesos.urandom().
Note: Don't use random module for PRNG for security purposes.
python -c "import os; print(os.urandom(20))"python -c "import os, binascii; print(binascii.hexlify(os.urandom(20)))" python -c "import random; print(random.SystemRandom().randint(0, 10 ** 10))"python -c "import random, string; print(''.join(random.SystemRandom().choice(string.ascii_lowercase + string.ascii_uppercase + string.digits) for _ in range(20)))"ruby -rsecurerandom -e "puts SecureRandom.random_bytes(20)"ruby -rsecurerandom -e 'puts SecureRandom.hex(20)'
ruby -rsecurerandom -e "puts SecureRandom.random_bytes(20).unpack('H*')"ruby -rsecurerandom -e 'puts SecureRandom.random_number(10 ** 10)'ruby -e "range = [*'0'..'9',*'A'..'Z',*'a'..'z']; puts Array.new(20){ range.sample }.join"