Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah cara saya Mengira Hash MD5 Fail dalam C?
Mendapatkan MD5 Hash daripada Fail dalam C : Panduan Langkah demi Langkah
Dalam C , pengiraan cincang MD5 bagi fail ialah tugas penting untuk pengesahan integriti data dan penghantaran selamat. Untuk memudahkan proses ini, mari kita selami pelaksanaan praktikal.
Langkah 1: Pautan ke Perpustakaan OpenSSL
Untuk pelaksanaan ini, anda memerlukan perpustakaan OpenSSL, yang menyediakan algoritma cincang MD5. Gunakan baris berikut semasa penyusunan:
gcc md5.c -o md5 -lssl
Langkah 2: Tentukan Cincang MD5
Isytiharkan tatasusunan untuk menyimpan nilai cincang MD5:
unsigned char result[MD5_DIGEST_LENGTH];
Langkah 3: Buka Fail dan Dapatkan Failnya Saiz
int file_descript = open(argv[1], O_RDONLY); unsigned long file_size = get_size_by_fd(file_descript);
Langkah 4: Petakan Fail ke dalam Memori
Untuk memproses fail besar dengan cekap, petakan kandungan fail ke dalam memori menggunakan mmap():
file_buffer = mmap(0, file_size, PROT_READ, MAP_SHARED, file_descript, 0);
Langkah 5: Kira MD5 Hash
Gunakan fungsi MD5() untuk mengira nilai cincang penimbal fail yang dipetakan:
MD5((unsigned char*) file_buffer, file_size, result);
Langkah 6: Cetak Hash MD5
Paparkan cincangan MD5 yang dikira sebagai perenambelasan digit:
print_md5_sum(result); printf(" %s\n", argv[1]);
Coretan Kod Lengkap:
#include <sys/types.h> #include <sys/stat.h> #include <sys/mman.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <openssl/md5.h> unsigned char result[MD5_DIGEST_LENGTH]; void print_md5_sum(unsigned char* md){ ... } unsigned long get_size_by_fd(int fd){ ... } int main(int argc, char *argv[]){ ... }
Kod ini memberi anda pelaksanaan menyeluruh untuk mengira cincangan MD5 fail dalam C .
Atas ialah kandungan terperinci Bagaimanakah cara saya Mengira Hash MD5 Fail dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!