Program Python untuk Mencari Hash Fail

Dalam artikel ini, anda akan belajar mencari hash fail dan memaparkannya.

Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan Python berikut:

  • Fungsi Python
  • Fungsi yang ditentukan pengguna Python
  • Fail Python I / O

Fungsi Hash mengambil sejumlah data sewenang-wenangnya dan mengembalikan rentetan bit panjang tetap. Keluaran fungsi dipanggil mesej digest.

Mereka digunakan secara meluas dalam kriptografi untuk tujuan pengesahan. Terdapat banyak fungsi hash seperti MD5, SHA-1 dan lain-lain. Rujuk halaman ini untuk mengetahui lebih lanjut mengenai fungsi hash dalam kriptografi.

Dalam contoh ini, kami akan menggambarkan cara mencirikan fail. Kami akan menggunakan algoritma hash SHA-1. Kekurangan SHA-1 panjang 160 bit.

Kami tidak mengumpan data dari fail sekaligus, kerana beberapa fail sangat besar untuk dimasukkan ke dalam memori sekaligus. Memecahkan fail menjadi potongan kecil akan menjadikan memori proses menjadi cekap.

Kod Sumber untuk Mencari 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) 

Pengeluaran

 633d7356947eec543c50b76a1852f92427f4dca9 

Dalam program ini, kami membuka fail dalam mod binari. Fungsi Hash terdapat dalam hashlibmodul. Kami melingkar hingga akhir fail menggunakan whilegelung. Apabila sampai di penghujungnya, kita mendapat objek byte kosong.

Dalam setiap lelaran, kami hanya membaca 1024 bait (nilai ini dapat diubah sesuai dengan keinginan kami) dari fail dan mengemas kini fungsi hashing.

Akhirnya, kami mengembalikan mesej digest dalam perwakilan heksadesimal menggunakan hexdigest()kaedah.

Artikel menarik...