Security and Cryptography in Python - Hash Functions(3)
How password are Verified
https://docs.python.org/3/library/hashlib.html
https://en.wikipedia.org/wiki/PBKDF2
import hashlib
import base64
iterations = 45454
salt = base64.b64decode("6VuJKkHVTdDelbNMPBxzw7INW2NkYlR/LoW40L7kVAI=".encode())
#SALTED-SHA512-PBKDF2
password = "password".encode()
value = hashlib.pbkdf2_hmac("sha512", password, salt, iterations, dklen=128)
print(base64.b64encode(value))
Running Result:
Why use Salt - to avoid other body see that you use the same password with them.
import hashlib
import base64
iterations = 45454
salt = base64.b64decode("6VuJKkHVTdDelbNMPBxzw7INW2NkYlR/LoW40L7kVAI=".encode())
validation = "SALTED-SHA512-PBKDF2"
password = "password".encode()
value = hashlib.pbkdf2_hmac("sha512", password, salt, iterations, dklen=128)
entropy = base64.b64encode(value)
print("Alice", validation, salt, iterations, entropy)
salt = "666".encode()
password = "password".encode()
value = hashlib.pbkdf2_hmac("sha512", password, salt, iterations, dklen=128)
entropy = base64.b64encode(value)
print("Bob", validation, salt, iterations, entropy)
Running result: