C의 파일에서 MD5 해시 가져오기: 단계별 가이드
C에서 파일의 MD5 해시를 계산하는 방법은 다음과 같습니다. 데이터 무결성 검증과 안전한 전송을 위한 중요한 작업입니다. 이 프로세스를 단순화하기 위해 실제 구현을 살펴보겠습니다.
1단계: OpenSSL 라이브러리에 연결
이 구현을 위해서는 OpenSSL 라이브러리가 필요합니다. MD5 해시 알고리즘을 제공합니다. 컴파일하는 동안 다음 줄을 사용하십시오.
gcc md5.c -o md5 -lssl
2단계: MD5 해시 정의
MD5 해시 값을 저장할 배열 선언:
unsigned char result[MD5_DIGEST_LENGTH];
3단계: 파일 열기 및 크기 확인
int file_descript = open(argv[1], O_RDONLY); unsigned long file_size = get_size_by_fd(file_descript);
4단계: 파일을 메모리에 매핑
하려면 대용량 파일을 효율적으로 처리하고 mmap()을 사용하여 파일 내용을 메모리에 매핑합니다.
file_buffer = mmap(0, file_size, PROT_READ, MAP_SHARED, file_descript, 0);
5단계: MD5 해시 계산
MD5() 함수 사용 매핑된 파일 버퍼의 해시 값을 계산하려면:
MD5((unsigned char*) file_buffer, file_size, result);
6단계: MD5 해시 인쇄
계산된 MD5 해시를 16진수로 표시:
print_md5_sum(result); printf(" %s\n", argv[1]);
전체 코드 조각:
#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[]){ ... }
이 코드는 C에서 파일의 MD5 해시를 계산하는 포괄적인 구현을 제공합니다.
위 내용은 C에서 파일의 MD5 해시를 어떻게 계산합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!