PHP에서 해싱 알고리즘은 파일 내용 또는 문자열과 같은 모든 길이의 데이터를 고정 길이 문자열로 변환하는 기술입니다. 공통 해싱 알고리즘에는 MD5, SHA-1, SHA-256 등이 포함됩니다. 파일을 처리 할 때 파일의 해시 값을 계산하는 데 사용하여 파일의 무결성을 확인하고 파일이 변조되지 않도록 할 수 있습니다.
PHP에서는 Hash_Final 함수를 사용하여 파일의 해시 값을 계산할 수 있습니다. 아래에서는 Hash_Final 함수를 사용하여 파일의 해시 값을 계산하고 이해하는 데 도움이되는 특정 코드 예제를 사용하는 방법을 소개합니다.
HASH_Final 함수는 해시 계산을 완료하는 데 사용되는 PHP의 함수 중 하나입니다. 일반적으로 hash_init 및 hash_update 와 함께 사용됩니다. 큰 데이터 (예 : 파일)를 처리 할 때는 청크 컴퓨팅 해시 값이 허용됩니다.
string hash_final ( resource $context [, bool $raw_output = false ] )
$ Context : 이것은 Hash_Init 함수에 의해 초기화 된 리소스로, 현재 해시 계산 상태를 저장하는 데 사용됩니다.
$ raw_output : true 인 경우 해시 값을 이진 형식으로 반환합니다. false 인 경우 해시 값을 16 진 형식으로 반환합니다 (기본값은 False ).
다음은 해시 기능을 사용하여 파일의 해시 값을 계산하는 방법을 보여주는 간단한 예입니다.
Hash_init 함수를 사용하여 해시 계산 컨텍스트를 초기화하십시오.
hash_update 함수를 사용하여 청크에서 파일을 읽고 해시 컨텍스트를 업데이트하십시오.
Hash_Final 함수를 사용하여 최종 해시 값을 얻으십시오.
<?php
// 파일 경로
$file = 'path/to/your/file.txt';
// 해시 계산 초기화,해싱 알고리즘을 선택하십시오(좋다 md5, sha256 기다리다)
$context = hash_init('sha256');
// 파일을 열고 읽으십시오
$handle = fopen($file, 'rb');
if ($handle) {
// 각각 읽습니다 8192 바이트
while (!feof($handle)) {
// 파일 내용을 읽으십시오
$data = fread($handle, 8192);
// 해시 값을 업데이트하십시오
hash_update($context, $data);
}
fclose($handle);
} else {
echo "파일을 열 수 없습니다!";
exit;
}
// 파일의 해시 값을 계산하십시오
$hash = hash_final($context);
// 출력 해시 값
echo "파일의 해시 값은입니다: " . $hash;
?>
먼저 해시 계산을 초기화하려면 hash_init 함수를 호출하십시오. SHA256을 해싱 알고리즘으로 선택하고 MD5 , SHA1 등과 같은 다른 방법을 사용할 수도 있습니다.
Fopen 함수를 사용하여 파일을 열면 Fread는 파일 내용을 시간당 8192 바이트로 읽습니다. 이렇게하면 큰 파일을 처리 할 때 전체 파일을 한 번에 메모리에로드하여 효율성을 향상시키지 못할 수 있습니다.
Hash_update는 현재 해시 계산에 읽기 데이터를 추가합니다.
마지막으로 Hash_Final을 호출하여 최종 해시 값을 얻으십시오.