OpenSSL 및 C를 사용하여 SHA256 해시 생성
해싱은 데이터의 고유한 지문 또는 다이제스트를 생성하는 데 사용되는 암호화 기술입니다. SHA256(Secure Hash Algorithm 2, 256비트)의 경우 이 다이제스트는 256비트 16진수 문자열입니다. SHA256은 일반적으로 데이터 무결성을 확인하고, 디지털 서명을 확인하고, 비밀번호를 안전하게 저장하는 데 사용됩니다.
이 문서에서는 OpenSSL 라이브러리와 C 코드를 사용하여 SHA256 해시를 생성하는 방법을 살펴보겠습니다.
OpenSSL 헤더 포함
시작하려면 C에서 OpenSSL 헤더를 사용할 수 있는지 확인하세요. 컴파일러. 일반적으로 다음 include 문을 사용할 수 있습니다.
#include
SHA256 컨텍스트 생성
다음으로 해싱 프로세스를 초기화하기 위해 SHA256 컨텍스트를 생성해야 합니다. 다음 코드를 사용하여 이를 수행할 수 있습니다:
SHA256_CTX context;
SHA256_Init(&context);
데이터로 SHA256 컨텍스트 업데이트
해시를 생성하려면 SHA256 컨텍스트에 해시할 데이터를 공급해야 합니다. SHA256_Update() 함수를 사용하여 이 작업을 청크로 수행할 수 있습니다:
SHA256_Update(&context, data, data_length);
해시 마무리
모든 데이터가 SHA256 컨텍스트에 입력되면 다음을 사용하여 해시를 마무리할 수 있습니다. SHA256_Final() 함수:
unsigned char hash[SHA256_DIGEST_LENGTH];
SHA256_Final(hash, &context);
결과 해시는 이제 해시 배열에 저장됩니다.
16진수 문자열로 변환
마지막으로 이진 해시를 사람이 읽을 수 있는 16진수로 변환해야 합니다. 문자열:
char hex_hash[65];
for (int i = 0; i x", hash[i]);
}
hex_hash[64] = 0;
사용 예
이제 기능이 준비되었으므로 이를 사용하여 필요에 따라 SHA256 해시를 생성할 수 있습니다. 예:
// 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);
이것은 주어진 문자열이나 파일에 대한 SHA256 해시를 생성하고 해당 버퍼에 저장합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3