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.