Random Byte Generation with SHA-256 Hashing

  • Share this:

Code introduction


This function uses the cryptography library to generate random bytes of a specified length, hashes the random bytes using the SHA-256 hash function, and also generates a random salt.


Technology Stack : cryptography, os

Code Type : Function

Code Difficulty : Intermediate


                
                    
def generate_random_bytes(length):
    from cryptography.hazmat.backends import default_backend
    from cryptography.hazmat.primitives import hashes
    import os
    
    # Generate a random salt
    salt = os.urandom(length // 2)
    
    # Hash the salt with SHA-256
    digest = hashes.Hash(hashes.SHA256(), backend=default_backend())
    digest.update(salt)
    
    # Generate random bytes and hash them
    random_bytes = os.urandom(length)
    digest.update(random_bytes)
    
    # Return the salt and the resulting hash
    return salt, digest.finalize()