PHP에서 해싱 알고리즘은 고정 길이의 데이터를 출력하기 위해 길이의 입력 데이터를 매핑하는 프로세스입니다. PHP는 다양한 해시 알고리즘을 제공하며, 내장 해시 () 함수를 통해 계산하거나 Hash_Final () 함수와 결합하여 단계별 해시 계산을 완료 할 수 있습니다. 이 기사에서는 PHP에서 hash_final () 함수를 사용하여 해시 계산을 완료하는 방법을 자세히 설명합니다.
hash_final ()은 php에서 해시 계산에 사용되는 함수입니다. 그 목적은 해시 컨텍스트의 최종 결과를 반환하고 해시 컨텍스트를 지우는 것입니다. 일반적으로 hash_init () 및 hash_update () 와 함께 사용됩니다.
hash_init () : 해시 컨텍스트를 초기화합니다.
hash_update () : 해시 컨텍스트에 데이터를 입력하십시오.
hash_final () : 해시 계산을 완료하고 결과를 반환합니다.
다음은 해시 계산을 완료하기 위해 hash_final ()을 사용하는 간단한 예입니다. 해시 컨텍스트를 초기화하고 데이터를 업데이트하며 해시 값을 계산하는 단계를 통해 설명합니다.
<?php
// 1. 해시 컨텍스트를 초기화합니다
$algorithm = 'sha256'; // 선택하다 SHA-256 연산
$context = hash_init($algorithm);
// 2. 데이터 업데이트
$data1 = "Hello, this is the first part of the data.";
$data2 = "This is the second part of the data.";
hash_update($context, $data1);
hash_update($context, $data2);
// 3. 해시를 계산하고 결과를 출력하십시오
$hash = hash_final($context);
echo "The final hash is: " . $hash . "\n";
?>
해시 컨텍스트 초기화 : Hash_Init () 함수를 통해 해시 컨텍스트를 초기화하십시오. SHA256 알고리즘을 선택했습니다. 즉, 출력은 256 비트 길이의 해시 값이 될 것입니다.
해시 컨텍스트 업데이트 : Hash_update () 함수를 통해 해시 컨텍스트에 여러 번 데이터를 입력하십시오. 여기서 우리는 두 번 다른 줄을 추가합니다.
최종 해시 값을 계산하십시오 : 호출 hash_final () 함수를 통해 최종 해시 값을 얻으십시오. 현재 해시 계산이 완료되고 계산 결과가 반환됩니다.
Hash_Final ()은 단일 데이터 스트림의 해시 계산에 사용될 수있을뿐만 아니라 파일 또는 스트리밍 데이터를 처리 할 때 종종 사용됩니다. 예를 들어, 큰 파일을 해시해야 할 때 해시 컨텍스트를 여러 번 업데이트하고 마지막으로 hash_final () 을 통해 파일의 해시 값을 계산하십시오.
<?php
// 예:파일 내용을 해시합니다
$filename = "largefile.txt";
$context = hash_init('sha256');
// 파일을 엽니 다
$file = fopen($filename, 'rb');
if ($file) {
// 청크에서 파일 내용을 읽고 해시 컨텍스트를 업데이트하십시오
while (!feof($file)) {
$chunk = fread($file, 8192);
hash_update($context, $chunk);
}
fclose($file);
// 파일의 최종 해시 값을 얻으십시오
$file_hash = hash_final($context);
echo "File hash: " . $file_hash . "\n";
} else {
echo "Could not open the file.\n";
}
?>
위의 코드에서는 파일 내용을 블록별로 읽고 Hash_update () 로 전달하여 파일 내용을 블록으로 읽음으로써 Hash_final () 을 통해 파일의 전체 해시 값을 얻습니다. 이것은 큰 파일을 처리하는 데 매우 효율적입니다.
hash_final () 의 함수 프로토 타입은 다음과 같습니다.
string hash_final ( resource $context, bool $raw_output = false )
$ 컨텍스트 : Hash_Init () 함수에 의해 반환 된 해시 컨텍스트 리소스.
$ raw_output (선택 사항) : true 로 설정된 경우 해시 값을 원래 이진 형식으로 리턴하고 그렇지 않으면 인쇄 가능한 16 진수 형식 (기본값)을 반환하십시오.
데이터 무결성 검증 : Hash_Final ()을 사용하여 파일 또는 데이터 스트림의 해시 값을 계산하여 전송 중 또는 저장 프로 시저 중 데이터가 변경되었는지 여부를 확인할 수 있습니다.
비밀번호 스토리지 : Hash_Final ()을 사용하여 사용자가 등록하고 데이터베이스에 저장할 때 암호의 해시 값을 계산하여 시스템의 보안을 향상시킬 수 있습니다.
디지털 서명 : hash_final () 은 다른 암호화 알고리즘과 함께 사용하여 데이터의 진위와 무결성을 보장하기 위해 디지털 데이터의 디지털 서명을 생성 할 수 있습니다.
PHP에서 hash_final () 함수는 해시 계산을 완료하는 데 중요한 도구 중 하나입니다. hash_init () , hash_update () 및 hash_final ()을 결합함으로써, 임의의 데이터의 해시 값은 유연하게 계산 될 수 있으며, 데이터 검증, 암호 저장, 파일 무결성 검사 등과 같은 필드에서 널리 사용됩니다. 문자열 데이터를 처리하거나 대규모 파일을 처리하든 hash_final ()은 Hash 계산 효율성을 완료 할 수 있습니다.