Sample code for 30+ languages & platforms
Unicode C

Encrypt / Decrypt Secure Strings

See more Encryption Examples

Demonstrates how to use the EncryptSecureENC and DecryptSecureENC methods to encrypt/decrypt secure strings. These methods were added in Chilkat v9.5.0.71 (released January 2018).

Chilkat Unicode C Downloads

Unicode C
#include <C_CkSecureStringW.h>
#include <C_CkCrypt2W.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkSecureStringW secStr1;
    HCkCrypt2W crypt;
    const wchar_t *encryptedStr;
    HCkSecureStringW secStr2;

    success = FALSE;

    //  This example requires the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    //  Load the secure string with some text.
    secStr1 = CkSecureStringW_Create();
    success = CkSecureStringW_LoadFile(secStr1,L"qa_data/txt/helloWorld.txt",L"utf-8");
    if (success != TRUE) {
        wprintf(L"Failed to load helloWorld.txt\n");
        CkSecureStringW_Dispose(secStr1);
        return;
    }

    crypt = CkCrypt2W_Create();

    CkCrypt2W_putCryptAlgorithm(crypt,L"aes");
    CkCrypt2W_putCipherMode(crypt,L"cbc");
    CkCrypt2W_putKeyLength(crypt,128);
    CkCrypt2W_SetEncodedKey(crypt,L"000102030405060708090A0B0C0D0E0F",L"hex");
    CkCrypt2W_SetEncodedIV(crypt,L"000102030405060708090A0B0C0D0E0F",L"hex");
    CkCrypt2W_putEncodingMode(crypt,L"base64");

    //  Return the base64 encoded encrypted contents of secStr1.
    encryptedStr = CkCrypt2W_encryptSecureENC(crypt,secStr1);
    wprintf(L"Encrypted string: %s\n",encryptedStr);

    //  Output:
    //  Encrypted string: qiq+IFhcjTkEIkZyf31V/g==

    //  Decrypt to secStr2:
    secStr2 = CkSecureStringW_Create();
    CkCrypt2W_DecryptSecureENC(crypt,encryptedStr,secStr2);

    //  Access the contents of secStr2
    wprintf(L"Decrypted string: %s\n",CkSecureStringW_access(secStr2));

    //  Output:
    //  Decrypted string: Hello World!


    CkSecureStringW_Dispose(secStr1);
    CkCrypt2W_Dispose(crypt);
    CkSecureStringW_Dispose(secStr2);

    }