Python Forensics - Função Hash
UMA hash functioné definido como a função que mapeia uma grande quantidade de dados para um valor fixo com um comprimento especificado. Essa função garante que a mesma entrada resulte na mesma saída, que na verdade é definida como uma soma hash. A soma de hash inclui uma característica com informações específicas.
Esta função é praticamente impossível de reverter. Assim, qualquer ataque de terceiros, como ataque de força bruta, é praticamente impossível. Além disso, este tipo de algoritmo é chamadoone-way cryptographic algorithm.
Uma função de hash criptográfica ideal tem quatro propriedades principais -
- Deve ser fácil calcular o valor de hash para qualquer entrada fornecida.
- Deve ser inviável gerar a entrada original de seu hash.
- Deve ser inviável modificar a entrada sem alterar o hash.
- Deve ser inviável encontrar duas entradas diferentes com o mesmo hash.
Exemplo
Considere o exemplo a seguir, que ajuda na correspondência de senhas usando caracteres em 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')
Fluxograma
Explicamos a lógica deste programa com a ajuda do seguinte fluxograma -
Resultado
Nosso código produzirá a seguinte saída -
A senha digitada duas vezes corresponde à função hash. Isso garante que a senha digitada duas vezes seja precisa, o que ajuda a reunir dados úteis e salvá-los em um formato criptografado.