Sample code for 30+ languages & platforms
Unicode C

Hash (Digest) a String

Hash the bytes of a string.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkStringBuilderW.h>

void ChilkatSample(void)
    {
    HCkStringBuilderW sb;
    const wchar_t *sha256_hex;
    const wchar_t *sha384_hex;
    const wchar_t *sha512_base64;
    const wchar_t *sha1_hex;
    const wchar_t *crc8_decimal;

    sb = CkStringBuilderW_Create();

    CkStringBuilderW_Append(sb,L"Hello World");

    // Hashing algorithms (i.e. digest algorithms) operate on raw bytes.
    // Therefore, we must specify the character encoding (utf-8, utf-16, iso-8859-1, etc.) to be used when hashing.

    // Get the SHA256 hash in hex
    sha256_hex = CkStringBuilderW_getHash(sb,L"sha256",L"hex",L"utf-8");
    wprintf(L"SHA256: %s\n",sha256_hex);

    // Get the SHA384 hash in hex lowercase
    sha384_hex = CkStringBuilderW_getHash(sb,L"sha384",L"hex_lower",L"utf-8");
    wprintf(L"SHA384: %s\n",sha384_hex);

    // Get the SHA512 hash in base64
    sha512_base64 = CkStringBuilderW_getHash(sb,L"sha512",L"base64",L"utf-8");
    wprintf(L"SHA512: %s\n",sha512_base64);

    // Get the SHA1 hash in hex lowercase
    sha1_hex = CkStringBuilderW_getHash(sb,L"sha1",L"hex_lower",L"utf-8");
    wprintf(L"SHA1: %s\n",sha1_hex);

    // Get the CRC8 digest in decimal
    crc8_decimal = CkStringBuilderW_getHash(sb,L"crc8",L"decimal",L"utf-8");
    wprintf(L"CRC8: %s\n",crc8_decimal);


    CkStringBuilderW_Dispose(sb);

    }