> 백엔드 개발 > C++ > C에서 파일의 MD5 해시를 어떻게 계산합니까?

C에서 파일의 MD5 해시를 어떻게 계산합니까?

DDD
풀어 주다: 2024-11-11 17:38:03
원래의
539명이 탐색했습니다.

How do I Calculate the MD5 Hash of a File in C  ?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿