Program Python untuk Menemukan Hash of File

Di artikel ini, Anda akan belajar menemukan hash file dan menampilkannya.

Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman Python berikut:

  • Fungsi Python
  • Fungsi yang Ditentukan Pengguna Python
  • I / O File Python

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 hashlibmodul. Kami melakukan perulangan hingga akhir file menggunakan whileperulangan. 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 ini.

Artikel yang menarik...