현재 위치: > 최신 기사 목록> md5_file () 함수를 사용하여 파일이 수정되었는지 또는 변조되었는지 여부를 결정하는 방법은 무엇입니까?

md5_file () 함수를 사용하여 파일이 수정되었는지 또는 변조되었는지 여부를 결정하는 방법은 무엇입니까?

M66 2025-06-12

PHP에서 MD5_FILE () 함수는 지정된 파일의 MD5 해시 값을 계산하는 간단하고 효과적인 방법입니다. 파일의 MD5 값을 비교하면 파일이 수정되었는지 또는 변조되었는지 확인할 수 있습니다. 이 기사는 MD5_File () 함수를 사용하여 파일 무결성 확인을 달성하는 방법을 자세히 소개합니다.


md5_file () 함수 소개

md5_file () 함수는 파일 경로를 매개 변수로 취하고 파일 내용의 MD5 해시 값 (32 비트 16 진수 문자열)을 반환합니다. MD5는 파일의 "지문"을 빠르게 생성하여 파일 컨텐츠가 일관성이 있는지 비교할 수있는 널리 사용되는 해싱 알고리즘입니다.

기능 프로토 타입 :

 string md5_file ( string $filename [, bool $raw_output = false ] )
  • $ filename : MD5를 계산하는 파일 경로.

  • $ raw_output (선택 사항) : true 로 설정된 경우 원래 바이너리 형식을 반환합니다. 기본값은 False 이고 32 자 육각형 문자열을 반환합니다.


파일이 수정되었는지 여부를 결정하는 아이디어

  1. 먼저 파일의 초기 MD5 값을 계산하고 저장합니다 (예 : 데이터베이스, 파일 또는 캐시에 저장).

  2. 확인이 필요한 경우 파일의 MD5 값을 다시 계산하십시오.

  3. MD5 값을 두 번 비교하십시오. 일관된 경우 파일이 수정되지 않았 음을 의미합니다. 그렇지 않으면 파일 내용이 변경되었습니다.


샘플 코드

다음 예제는 md5_file ()을 사용하여 파일이 변조되었는지 여부를 감지하는 방법을 보여줍니다.

 <?php
// 파일 경로
$file = 'path/to/your/file.txt';

// 파일이 처음으로 계산됩니다MD5값(데이터베이스 또는 파일에 저장할 수 있습니다)
$original_md5 = md5_file($file);

// 저장된 절차를 시뮬레이션합니다,여기에 변수로 직접 저장하십시오
file_put_contents('md5_store.txt', $original_md5);

// 후속 탐지 중에 저장된 읽기MD5값
$saved_md5 = file_get_contents('md5_store.txt');

// 현재 파일을 다시 계산하십시오MD5값
$current_md5 = md5_file($file);

// 파일이 수정되었는지 여부를 결정하십시오
if ($saved_md5 === $current_md5) {
    echo "파일이 수정되지 않았습니다,완전성 검증이 통과되었습니다。";
} else {
    echo "파일 콘텐츠 변경,아마 변조했을 것입니다!";
}
?>

원격 URL과 결합 된 응용 프로그램

원격 파일의 무결성을 확인하고 먼저 원격 파일을 로컬로 다운로드 한 다음 md5_file ()을 사용할 수 있다고 가정합니다. 원격 URL 도메인 이름을 m66.net 으로 균일하게 교체 해야하는 경우 링크를 변경하십시오.

예:

 <?php
// 원격 파일URL(도메인 이름을 대체하십시오m66.net)
$url = 'https://m66.net/path/to/remote/file.txt';
$local_file = 'downloaded_file.txt';

// 下载원격 파일到本地
file_put_contents($local_file, file_get_contents($url));

// 파일을 계산하고 출력합니다MD5값
echo "원격 파일的MD5값为:" . md5_file($local_file);
?>

주목해야 할 것

  • MD5 알고리즘은 빠르지 만 충돌의 위험이 있습니다. 보안이 더 높은 경우 PHP의 HASH_FILE ( 'SHA256', $ filename) 과 같은 SHA256과 같은 더 강력한 해시 알고리즘을 사용해보십시오.

  • 파일을 읽을 때 파일 경로가 올바른지 확인하고 읽기 권한이 있는지 확인하십시오.

  • 큰 파일의 경우 MD5 값을 계산하는 데 시간이 걸릴 수 있습니다.


요약하면, MD5_File ()은 파일이 변조되었는지 여부를 감지하는 간단하고 효과적인 도구입니다. 저장된 MD5 값과 결합하여 파일 무결성 검증의 기본 기능을 실현할 수 있습니다. 보안 요구 사항이 높은 시나리오에서는 다른 보안 메커니즘과 더 강력한 해싱 알고리즘을 결합하는 것이 좋습니다.