현재 위치: > 최신 기사 목록> PHP HASH_FINAL은 네트워크 요청 데이터의 서명 생성에 사용됩니다.

PHP HASH_FINAL은 네트워크 요청 데이터의 서명 생성에 사용됩니다.

gitbox 2025-05-19

HASH_Final 함수는 해시 값을 생성하는 PHP의 함수입니다. 일반적으로 Hash_initHash_update 와 함께 사용하여 해시 컨텍스트를 작성하고 데이터를 단계별로 업데이트합니다. Hash_final은 해시 작업을 완료하고 최종 해시 값을 반환하는 데 사용됩니다.

 string hash_final ( resource $context [, bool $raw_output = false ] )
  • $ 컨텍스트 : 해시 컨텍스트는 Hash_init 함수에 의해 초기화됩니다.

  • $ raw_output : true 로 설정된 경우 해시 값을 이진 형식으로 반환합니다. False 로 설정된 경우 해시 값을 16 진 형식으로 반환하십시오.

네트워크 요청에서 서명을 생성하기위한 요구 사항

많은 API에서 네트워크 요청에는 서명 매개 변수가 동반되어야하며 서명은 일반적으로 요청 매개 변수 및 키의 암호화 해시의 결과입니다. 목적은 요청이 변조되는 것을 방지하는 것입니다. 해시 함수를 사용하여 서명을 생성함으로써 전송 중 요청 된 컨텐츠의 일관성과 보안을 보장 할 수 있습니다.

hash_final을 사용하여 서명을 생성합니다

PHP를 통해 서명을 생성하고 Hash_Final 함수를 사용 하여이 프로세스를 완료해야한다고 가정하십시오. 특정 단계는 다음과 같습니다.

  1. 해시 컨텍스트 초기화 :

먼저 Hash_init을 사용하여 해시 컨텍스트를 초기화하고 적절한 해시 알고리즘 (예 : SHA256 )을 선택하십시오.

 $context = hash_init('sha256');
  1. 해시 컨텍스트 업데이트 :

다음으로 요청 매개 변수와 키를 해시 컨텍스트에 점차 추가합니다. 여기서 우리는 요청 된 매개 변수를 예로 봅니다.

 $params = [
    'method' => 'POST',
    'url' => 'https://gitbox.net/api/v1/order',
    'timestamp' => time(),
    'api_key' => 'your_api_key'
];

foreach ($params as $key => $value) {
    hash_update($context, $key . '=' . $value);
}
  1. 최종 서명 생성 :

최종 해시 값은 HASH_Final 함수를 통해 서명으로 생성됩니다. 여기서 우리는 16 진 형식을 사용하도록 선택합니다.

 $signature = hash_final($context, false);

완전한 코드 예제

다음은 서명을 생성하고 API 요청에 추가하는 방법을 보여주는 완전한 샘플 코드입니다.

 <?php

// 해시 컨텍스트를 초기화합니다
$context = hash_init('sha256');

// 요청 매개 변수
$params = [
    'method' => 'POST',
    'url' => 'https://gitbox.net/api/v1/order',
    'timestamp' => time(),
    'api_key' => 'your_api_key'
];

// 将요청 매개 변수添加到哈希上下文
foreach ($params as $key => $value) {
    hash_update($context, $key . '=' . $value);
}

// 서명을 생성하십시오
$signature = hash_final($context, false);

// 서명 결과를 인쇄하십시오
echo 'Generated Signature: ' . $signature;

// 네트워크 요청을 구축하기 위해 생성 된 서명을 추가로 사용합니다
// 샘플 요청
$request_data = [
    'method' => 'POST',
    'url' => 'https://gitbox.net/api/v1/order',
    'timestamp' => time(),
    'api_key' => 'your_api_key',
    'signature' => $signature
];

// 요청을 실행하기위한 코드
// 여기에 사용됩니다cURL원하는 경우 요청을 보내십시오,요청 데이터를 통과하십시오

?>

서명을 사용하여 네트워크 요청을하는 방법은 무엇입니까?

실제 응용 프로그램에서 서명이 생성 된 후 일반적으로 요청의 일부로 API 서버로 전송됩니다. 다음은 생성 된 서명을 게시물 요청에 첨부하는 방법을 보여주는 간단한 예입니다.

 $ch = curl_init();

// 구성cURL묻다
curl_setopt($ch, CURLOPT_URL, 'https://gitbox.net/api/v1/order');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($request_data));

// 구현하다cURL묻다
$response = curl_exec($ch);

// 폐쇄cURL세션
curl_close($ch);

// 출력 응답
echo $response;

이러한 방식으로, 우리는 전송 중에 요청의 데이터가 변조되지 않았는지 확인할 수 있으며 API 서버는 동일한 서명 알고리즘을 사용하여 요청의 정당성을 확인할 수 있습니다.