Sample code for 30+ languages & platforms
C

Hash (Digest) a String

Hash the bytes of a string.

Chilkat C Downloads

C
#include <C_CkStringBuilder.h>

void ChilkatSample(void)
    {
    HCkStringBuilder sb;
    const char *sha256_hex;
    const char *sha384_hex;
    const char *sha512_base64;
    const char *sha1_hex;
    const char *crc8_decimal;

    sb = CkStringBuilder_Create();

    CkStringBuilder_Append(sb,"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 = CkStringBuilder_getHash(sb,"sha256","hex","utf-8");
    printf("SHA256: %s\n",sha256_hex);

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

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

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

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


    CkStringBuilder_Dispose(sb);

    }