Python Forensics - Hash Fonksiyonu

Bir hash functionbüyük miktarda veriyi belirli bir uzunlukta sabit bir değere eşleyen işlev olarak tanımlanır. Bu işlev, aslında bir hash toplamı olarak tanımlanan aynı çıktıyla aynı girdinin sonuçlanmasını sağlar. Karma toplam, belirli bilgiler içeren bir özelliği içerir.

Bu işlevin geri döndürülmesi pratik olarak imkansızdır. Bu nedenle, kaba kuvvet saldırısı gibi herhangi bir üçüncü taraf saldırısı pratikte imkansızdır. Ayrıca, bu tür bir algoritmayaone-way cryptographic algorithm.

İdeal bir kriptografik hash fonksiyonunun dört ana özelliği vardır -

  • Verilen herhangi bir girdi için hash değerini hesaplamak kolay olmalıdır.
  • Özgün girdiyi hashinden oluşturmak mümkün olmamalıdır.
  • Karma değerini değiştirmeden girişi değiştirmek mümkün olmamalıdır.
  • Aynı hash ile iki farklı girdi bulmak mümkün olmamalıdır.

Misal

Karakterleri onaltılık formatta kullanan parolaları eşleştirmeye yardımcı olan aşağıdaki örneği düşünün.

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

Akış çizelgesi

Bu programın mantığını aşağıdaki akış şeması yardımıyla açıkladık -

Çıktı

Kodumuz aşağıdaki çıktıyı üretecektir -

İki kez girilen şifre, hash fonksiyonuyla eşleşir. Bu, iki kez girilen parolanın doğru olmasını sağlar, bu da yararlı verilerin toplanmasına ve şifrelenmiş bir biçimde kaydedilmesine yardımcı olur.