OpenSSL 및 C를 사용하여 SHA256 해시 생성
해싱은 데이터의 고유한 지문 또는 다이제스트를 생성하는 데 사용되는 암호화 기술입니다. SHA256(Secure Hash Algorithm 2, 256비트)의 경우 이 다이제스트는 256비트 16진수 문자열입니다. SHA256은 일반적으로 데이터 무결성 확인, 디지털 서명 확인, 비밀번호 안전하게 저장하는 데 사용됩니다.
이 기사에서는 OpenSSL 라이브러리와 C 코드를 사용하여 SHA256 해시를 생성하는 방법을 살펴보겠습니다.
OpenSSL 헤더 포함
시작하려면 C 컴파일러에서 사용할 수 있는 OpenSSL 헤더가 있는지 확인하세요. 일반적으로 다음 include 문을 사용할 수 있습니다.
<code class="cpp">#include <openssl/sha.h></code>
SHA256 컨텍스트 생성
다음으로 SHA256 컨텍스트를 생성하여 해싱 프로세스를 초기화해야 합니다. 다음 코드를 사용하여 이 작업을 수행할 수 있습니다.
<code class="cpp">SHA256_CTX context; SHA256_Init(&context);</code>
데이터로 SHA256 컨텍스트 업데이트
해시를 생성하려면 해시할 데이터를 공급해야 합니다. SHA256 컨텍스트로. SHA256_Update() 함수를 사용하여 이 작업을 청크로 수행할 수 있습니다.
<code class="cpp">SHA256_Update(&context, data, data_length);</code>
해시 마무리
모든 데이터가 SHA256 컨텍스트에 공급되면 SHA256_Final() 함수를 사용하여 해시를 마무리할 수 있습니다.
<code class="cpp">unsigned char hash[SHA256_DIGEST_LENGTH]; SHA256_Final(hash, &context);</code>
결과 해시는 이제 해시 배열에 저장됩니다.
16진수 문자열로 변환
마지막으로 바이너리 해시를 사람이 읽을 수 있는 16진수 문자열로 변환해야 합니다.
<code class="cpp">char hex_hash[65]; for (int i = 0; i < SHA256_DIGEST_LENGTH; i++) { sprintf(hex_hash + (i * 2), "%02x", hash[i]); } hex_hash[64] = 0;</code>
사용 예
이제 함수가 생겼습니다. 그 자리에서 이를 사용하여 필요에 따라 SHA256 해시를 생성할 수 있습니다. 예:
<code class="cpp">// Generate a hash for a string char hash_string[65]; SHA256_string("Hello, world!", hash_string); // Generate a hash for a file char hash_file[65]; SHA256_file("path/to/file", hash_file);</code>
주어진 문자열이나 파일에 대해 SHA256 해시를 생성하여 해당 버퍼에 저장합니다.
위 내용은 OpenSSL 및 C를 사용하여 SHA256 해시를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!