Python Forensics - Función hash
UN hash functionse define como la función que asigna una gran cantidad de datos a un valor fijo con una longitud específica. Esta función asegura que la misma entrada dé como resultado la misma salida, que en realidad se define como una suma hash. La suma hash incluye una característica con información específica.
Esta función es prácticamente imposible de revertir. Por lo tanto, cualquier ataque de terceros como un ataque de fuerza bruta es prácticamente imposible. Además, este tipo de algoritmo se llamaone-way cryptographic algorithm.
Una función hash criptográfica ideal tiene cuatro propiedades principales:
- Debe ser fácil calcular el valor hash para cualquier entrada dada.
- Debe ser inviable generar la entrada original a partir de su hash.
- Debe ser inviable modificar la entrada sin cambiar el hash.
- Debe ser inviable encontrar dos entradas diferentes con el mismo hash.
Ejemplo
Considere el siguiente ejemplo que ayuda a hacer coincidir las contraseñas utilizando caracteres en formato hexadecimal.
import uuid
import hashlib
def hash_password(password):
# userid is used to generate a random number
salt = uuid.uuid4().hex #salt is stored in hexadecimal value
return hashlib.sha256(salt.encode() + password.encode()).hexdigest() + ':' + salt
def check_password(hashed_password, user_password):
# hexdigest is used as an algorithm for storing passwords
password, salt = hashed_password.split(':')
return password == hashlib.sha256(salt.encode()
+ user_password.encode()).hexdigest()
new_pass = raw_input('Please enter required password ')
hashed_password = hash_password(new_pass)
print('The string to store in the db is: ' + hashed_password)
old_pass = raw_input('Re-enter new password ')
if check_password(hashed_password, old_pass):
print('Yuppie!! You entered the right password')
else:
print('Oops! I am sorry but the password does not match')
Diagrama de flujo
Hemos explicado la lógica de este programa con la ayuda del siguiente diagrama de flujo:
Salida
Nuestro código producirá el siguiente resultado:
La contraseña ingresada dos veces coincide con la función hash. Esto asegura que la contraseña ingresada dos veces sea precisa, lo que ayuda a recopilar datos útiles y guardarlos en un formato cifrado.