현재 위치: > 최신 기사 목록> Hash_Final을 사용하여 PHP에서 데이터의 해시 다이제스트를 얻는 방법은 무엇입니까?

Hash_Final을 사용하여 PHP에서 데이터의 해시 다이제스트를 얻는 방법은 무엇입니까?

gitbox 2025-05-27

php에서 hash_final ()은 완성 된 해시 다이제스트를 반환하는 매우 유용한 기능입니다. 일반적으로 스트리밍 해시 알고리즘 (예 : hash_init ()hash_update () )를 사용할 때는 hash_final ()을 사용하여 최종 해시 값을 얻습니다. 이 기사는 PHP에서 Hash_Final () 함수를 사용하여 임의의 데이터의 해시 다이제스트를 얻고이를 작동하는 방법을 보여주는 방법을 소개합니다.

1. 해시 요약이란 무엇입니까?

해시 다이제스트는 입력 데이터를 고정 길이 문자열로 변환하는 해싱 알고리즘입니다. 이 요약은 일반적으로 데이터 무결성 검증, 디지털 서명 등과 같은 시나리오에서 사용됩니다. PHP에서 다양한 해시 알고리즘 (예 : MD5, SHA1, SHA256 등)을 사용하여 해시 소화를 생성 할 수 있습니다.

2. hash_final () 함수의 개요

Hash_Final () 은 PHP의 내장 기능으로 해시 계산을 완료하고 최종 해시 값을 반환합니다. 일반적으로 hash_init ()hash_update () 와 함께 사용됩니다.

  • 문법 :

     string hash_final ( resource $context [, bool $raw_output = false ] )
    
  • 매개 변수 설명 :

    • $ 컨텍스트 : Hash_Init () 에 의해 반환 된 해시 컨텍스트.

    • $ raw_output : true 인 경우 해시 다이제스트를 이진 형식으로 반환하고 그렇지 않으면 해시 다이제스트를 16 진 형식으로 반환합니다 (기본값은 false ).

3. hash_final ()을 사용하여 해시 다이제스트를 얻는 기본 단계

1 단계 : 해시 컨텍스트를 초기화합니다

먼저 해시 컨텍스트를 초기화하기 위해 hash_init () 함수를 사용합니다. 이 기능은 해싱 알고리즘 (예 : SHA256)을 지정해야합니다.

 $context = hash_init('sha256');

2 단계 : 해시 데이터 업데이트

그런 다음 hash_update () 함수를 사용하여 해시 컨텍스트에 데이터를 추가합니다. Hash_update () 에게 여러 번 전화하여 더 많은 데이터를 추가 할 수 있습니다.

 $data = "Hello, world!";
hash_update($context, $data);

3 단계 : 해시 요약을 받으십시오

마지막으로 Hash_final () 함수를 사용하여 최종 해시 다이제스트를 얻고 해시 계산을 종료하십시오.

 $hash = hash_final($context);
echo "The hash value is: " . $hash;

4. 샘플 코드

다음은 Hash_Final () 함수를 사용하여 문자열의 SHA256 해시 값을 생성하는 방법을 보여주는 완전한 예입니다.

 <?php
// 초기화SHA256해시 컨텍스트
$context = hash_init('sha256');

// 데이터 업데이트
$data = "This is some data to hash.";
hash_update($context, $data);

// 최종 해시 요약을 받으십시오
$hash = hash_final($context);

// 출력 해시 값
echo "The SHA256 hash of the data is: " . $hash;
?>

출력은 데이터의 SHA256 해시 다이제스트를 나타내는 64 자 육각형 문자열이 될 것입니다.

5. raw_output 매개 변수를 사용하십시오

16 진수 형식 대신 이진 형식으로 해시 다이제스트를 얻으려면 raw_output 매개 변수를 true 로 설정할 수 있습니다. 해시 값을 데이터베이스에 저장하는 것과 같은 일부 응용 프로그램 시나리오에 더 유용 할 수 있습니다.

 $binary_hash = hash_final($context, true);
echo "The raw hash value is: " . bin2hex($binary_hash);  // 출력은 16 진수 문자열입니다

6. 실제 응용 프로그램 : URL 해시 생성

URL의 해시를 계산하려면 hash_final () 도이를 달성하는 데 도움이 될 수 있습니다. hash_update ()와 함께 hash_init () 를 사용하여 특정 URL의 해시 값을 얻을 수 있습니다. URL의 해시 값을 계산해야한다고 가정합니다. 예는 다음과 같습니다.

 <?php
// 초기화SHA256해시 컨텍스트
$context = hash_init('sha256');

// 이것이 우리가 해시를 계산하고 싶은 것이라고 가정합니다.URL
$url = "https://gitbox.net/example/page";

// 고쳐 쓰다URL데이터
hash_update($context, $url);

// 해시 요약을 받으십시오
$hash = hash_final($context);

// 출력 해시 값
echo "The hash of the URL is: " . $hash;
?>

이 예에서는 URL https://gitbox.net/example/page 의 SHA256 해시 다이제스트를 계산합니다. hash_final () 함수를 사용하는 경우 URL의 길이 또는 내용에 관계없이 항상 고정 길이 해시를 반환합니다.

7. 결론

Hash_Final () 은 PHP에서 매우 강력한 기능으로 임의의 데이터의 해시 소화를 쉽게 계산할 수 있습니다. 파일 내용, 문자열 또는 URL 등이든 해시 값을 생성하는 데 사용할 수 있습니다. Hash_Final () 의 사용을 마스터하면 해시 알고리즘을 더 잘 이해하고 적용하고 코드 보안 및 데이터 무결성 검증 기능을 향상시키는 데 도움이됩니다.