How to verify a hashed password in Python

1 Answer

0 votes
import hashlib, os, base64

def hash_password(password):
    salt = os.urandom(16)
    hash_bytes = hashlib.pbkdf2_hmac(
        "sha256",
        password.encode(),
        salt,
        100000
    )
    return base64.b64encode(salt).decode() + ":" + base64.b64encode(hash_bytes).decode()


def verify_password(password, stored_hash):
    salt_b64, hash_b64 = stored_hash.split(":")
    salt = base64.b64decode(salt_b64)
    stored_hash = base64.b64decode(hash_b64)

    new_hash = hashlib.pbkdf2_hmac(
        "sha256",
        password.encode(),
        salt,
        100000
    )

    return new_hash == stored_hash


stored_hash = hash_password("SecurePassword123!@")
print("Stored hash:", stored_hash)

if verify_password("SecurePassword123!@", stored_hash):
    print("Password is correct")
else:
    print("Invalid password")



'''
run:
    
Stored hash: GNLWu9Sff+9ejn/3A60akA==:bg89f31fiy3oJXthVxe0mKsdnKrMq+RzAfEnn+9xIAo=
Password is correct


'''




 



answered 11 hours ago by avibootz
...