Криминалистика Python - Хеш-функция

А hash functionопределяется как функция, которая отображает большой объем данных в фиксированное значение заданной длины. Эта функция гарантирует, что один и тот же ввод дает один и тот же вывод, который фактически определяется как хэш-сумма. Сумма хэша включает характеристику с конкретной информацией.

Отменить эту функцию практически невозможно. Таким образом, любая атака третьей стороны, такая как атака грубой силы, практически невозможна. Также такой алгоритм называетсяone-way cryptographic algorithm.

Идеальная криптографическая хеш-функция имеет четыре основных свойства:

  • Должно быть легко вычислить хеш-значение для любого заданного ввода.
  • Должно быть невозможно сгенерировать исходный ввод из его хэша.
  • Должно быть невозможно изменить ввод без изменения хэша.
  • Должно быть невозможно найти два разных входа с одним и тем же хешем.

пример

Рассмотрим следующий пример, который помогает подбирать пароли с использованием символов в шестнадцатеричном формате.

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')

Схема

Мы объяснили логику этой программы с помощью следующей блок-схемы -

Вывод

Наш код выдаст следующий результат -

Введенный дважды пароль совпадает с хеш-функцией. Это гарантирует, что дважды введенный пароль будет точным, что помогает собирать полезные данные и сохранять их в зашифрованном виде.