Fungsi hash mengambil jumlah data yang sewenang-wenang dan mengembalikan string bit dengan panjang tetap. Keluaran dari fungsi tersebut disebut pesan intisari.
Mereka banyak digunakan dalam kriptografi untuk tujuan otentikasi. Ada banyak fungsi hashing seperti MD5, SHA-1 dll. Lihat halaman ini untuk mengetahui lebih banyak tentang fungsi hash dalam kriptografi.
Dalam contoh ini, kami akan mengilustrasikan cara melakukan hash file. Kami akan menggunakan algoritma hashing SHA-1. Intisari SHA-1 memiliki panjang 160 bit.
Kami tidak memberi makan data dari file sekaligus, karena beberapa file sangat besar untuk muat di memori sekaligus. Memecah file menjadi potongan-potongan kecil akan membuat proses memori menjadi efisien.
Kode Sumber untuk Menemukan Hash
# Python rogram to find the SHA-1 message digest of a file
# importing the hashlib module
import hashlib
def hash_file(filename):
""""This function returns the SHA-1 hash
of the file passed into it"""
# make a hash object
h = hashlib.sha1()
# open file for reading in binary mode
with open(filename,'rb') as file:
# loop till the end of the file
chunk = 0
while chunk != b'':
# read only 1024 bytes at a time
chunk = file.read(1024)
h.update(chunk)
# return the hex representation of digest
return h.hexdigest()
message = hash_file("track1.mp3")
print(message)
Keluaran
633d7356947eec543c50b76a1852f92427f4dca9
Dalam program ini, kami membuka file dalam mode biner. Fungsi hash tersedia di hashlib
modul. Kami mengulang sampai akhir file menggunakan file while
loop. Saat mencapai akhir, kita mendapatkan objek byte kosong.
Dalam setiap iterasi, kita hanya membaca 1024 byte (nilai ini dapat diubah sesuai keinginan kita) dari file dan memperbarui fungsi hashing.
Akhirnya, kami mengembalikan pesan intisari dalam representasi heksadesimal menggunakan hexdigest()
metode.