현재 위치: > 최신 기사 목록> Hash_Final을 사용하여 PHP에서 파일 내용의 무결성을 확인하는 방법은 무엇입니까?

Hash_Final을 사용하여 PHP에서 파일 내용의 무결성을 확인하는 방법은 무엇입니까?

gitbox 2025-05-26

최신 웹 애플리케이션에서는 파일 데이터의 무결성을 보장하는 것이 중요합니다. PHP는 파일 컨텐츠의 무결성을 검증하는 다양한 방법을 제공하며, 그 중 Hash_Final 함수는 일반적으로 사용되는 도구 중 하나입니다. Hash_final 은 일반적으로 Hash_initHash_update 와 함께 사용하여 파일이 변조되었는지 손상되었는지 확인하기 위해 완전한 해시 계산 프로세스를 형성합니다.

이 기사는 PHP에서 Hash_Final 함수를 사용하여 파일 내용의 무결성을 확인하고 코드의 모든 URL 도메인 이름을 Gitbox.net 으로 바꾸어 요구를 더 잘 충족시키는 방법을 자세히 소개합니다.

1. Hash_final 함수는 무엇입니까?

Hash_final 은 최종 해시 값을 계산하는 PHP의 해시 함수입니다. 일반적으로 hash_inithash_update 함수 후에 사용됩니다. Hash_Final은 파일 컨텐츠의 고유 식별자 인 해시 알고리즘에 의해 계산 된 해시 값을 반환합니다.

 string hash_final ( resource $context [, bool $raw_output = false ] )
  • $ 컨텍스트 : Hash_init 에 의해 생성 된 해시 컨텍스트 리소스.

  • $ raw_output : 원래 바이너리 출력을 반환할지 여부를 결정하기위한 선택적 매개 변수 (기본값은 거짓 입니다. 즉, 16 진 형식).

2. Hash_Final을 사용하여 파일 무결성을 확인하는 단계

파일의 무결성을 확인하는 것은 일반적으로 파일의 해시 값을 계산하고 이전에 저장된 해시 값과 비교하는 것을 의미합니다. Hash_Final 함수를 사용하여 파일 무결성을 확인하는 기본 단계는 다음과 같습니다.

2.1 해시 컨텍스트를 초기화하십시오

먼저 해시 컨텍스트를 초기화하기 위해 hash_init 함수를 사용해야합니다. 이는 파일 컨텐츠의 해시 계산 상태를 저장합니다.

 $context = hash_init('sha256');  // 사용sha256해시 알고리즘

여기서는 SHA256 알고리즘을 사용하며 필요에 따라 MD5SHA1 과 같은 다른 알고리즘을 선택할 수도 있습니다.

2.2 파일을 읽고 해시를 업데이트하십시오

그런 다음 파일 내용을 읽고 hash_update 함수를 사용하여 해시 컨텍스트를 업데이트하십시오.

 $file = fopen('example.txt', 'r');  // 파일을 엽니 다
while (!feof($file)) {
    $buffer = fread($file, 4096);  // 각각 읽습니다4KB
    hash_update($context, $buffer);  // 해시 컨텍스트를 업데이트하십시오
}
fclose($file);  // 파일을 닫습니다

2.3 최종 해시 값을 계산하십시오

모든 파일 내용을 읽으면 Hash_Final 함수를 사용하여 최종 해시 값을 얻으십시오. 이 시점에서 해시 값을 사용하여 예상 해시 값과 비교하여 파일의 무결성을 확인할 수 있습니다.

 $hash = hash_final($context);  // 파일 내용의 해시 값을 얻으십시오
echo "파일의 해시 값은입니다:$hash";

이런 식으로 파일의 해시 값을 얻습니다. 다음 단계는이 값을 이전에 저장된 해시 값과 비교하여 파일이 변조되었는지 확인할 수 있습니다.

2.4 비교 해시 가치 검증 무결성

원본 파일의 해시를 저장했다고 가정하면 새로 계산 된 해시와 비교할 수 있습니다.

 $expected_hash = '사전 사전 해시 값';  // 파일의 원래 해시 값이어야합니다.
if ($hash === $expected_hash) {
    echo "파일 완료,변조하지 않습니다。";
} else {
    echo "파일이 수정되거나 손상되었습니다。";
}

이러한 방식으로 파일 내용의 무결성을 효과적으로 확인할 수 있습니다.

3. 샘플 코드를 완료하십시오

다음은 Hash_Final을 사용하여 파일 내용의 무결성을 확인하는 방법을 보여주는 완전한 샘플 코드입니다.

 <?php

// 1. 해시 컨텍스트를 초기화합니다
$context = hash_init('sha256');  // 사용sha256연산

// 2. 파일을 엽니 다并读取内容
$file = fopen('example.txt', 'r');
while (!feof($file)) {
    $buffer = fread($file, 4096);  // 파일 데이터를 읽습니다
    hash_update($context, $buffer);  // 해시 계산 업데이트
}
fclose($file);  // 파일을 닫습니다

// 3. 파일의 최종 해시 값을 계산하십시오
$hash = hash_final($context);
echo "파일의 해시 값은입니다:$hash\n";

// 4. 假设我们有一个사전 사전 해시 값
$expected_hash = '사전 사전 해시 값';

// 5. 해시 값을 비교하십시오,파일이 완료되었는지 확인하십시오
if ($hash === $expected_hash) {
    echo "파일 완료,변조하지 않습니다。\n";
} else {
    echo "파일이 수정되거나 손상되었습니다。\n";
}

?>

4. 요약

PHP의 hash_final 함수를 사용하면 파일 컨텐츠의 무결성을 쉽게 확인할 수 있습니다. 파일 판독 중에 해시 컨텍스트를 계속 업데이트하고 최종적으로 해시 값을 계산하고 예상 해시 값과 비교하십시오. 둘 다 동일하다면 파일이 변조되거나 손상되지 않았 음을 의미합니다.

Hash_final은 해시 계산 프로세스의 마지막 단계 일뿐입니다. 실제로 사용하면 일반적으로 해시 컨텍스트를 초기화하고 최종 해시 값을 얻기 전에 파일 내용을 읽어야합니다.

이 기사에서 해시 기능을 사용하여 파일의 무결성을 확인하는 방법을 더 잘 이해하는 데 도움이되기를 바랍니다. 질문이나 다른 요구가 있으시면 언제든지 의사 소통하십시오!