http://www.askyb.com/cpp/openssl-sha256-hashing-example-in-cpp/
OpenSSL SHA256 Hashing Example in C++This tutorial will guide you on how to hash a string by using OpenSSL’s SHA256 hash function. This tutorial will create two C++ example files which will compile and run in Ubuntu environment.
1. Here are the openssl SHA256 sample source code.
Example #1: sha256_sample1.cpp
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>
int main()
{
unsigned char digest[SHA256_DIGEST_LENGTH];
char string[] = "hello world";
SHA256((unsigned char*)&string, strlen(string), (unsigned char*)&digest);
char mdString[SHA256_DIGEST_LENGTH*2+1];
for(int i = 0; i < SHA256_DIGEST_LENGTH; i++)
sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);
printf("SHA256 digest: %s\n", mdString);
return 0;
}
Example #2: sha256_sample2.cpp
#include <stdio.h>
#include <string.h>
#include <openssl/sha.h>
int main() {
unsigned char digest[SHA256_DIGEST_LENGTH];
const char* string = "hello world";
SHA256_CTX ctx;
SHA256_Init(&ctx);
SHA256_Update(&ctx, string, strlen(string));
SHA256_Final(digest, &ctx);
char mdString[SHA256_DIGEST_LENGTH*2+1];
for (int i = 0; i < SHA256_DIGEST_LENGTH; i++)
sprintf(&mdString[i*2], "%02x", (unsigned int)digest[i]);
printf("SHA256 digest: %s\n", mdString);
return 0;
}
2. Let’s try to compile both sample cpp files and you should observe the following output screenshot.
~$ ./sample1
SHA256 digest: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
~$ gcc sha256_sample2.cpp -o sample2 -lcrypto
~$ ./sample2
SHA256 digest: b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
Note: -lcrypto will include the crypto library from openssl
1234 값을 SHA256 으로 변환 : 03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4