Sample code for 30+ languages & platforms
Node.js

Streaming Encryption by Encrypting in Chunks

See more Encryption Examples

Encrypt data in chunks.

Chilkat Node.js Downloads

Node.js
NODEJS_PRELUDE

function chilkatExample() {

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

    var crypt = new chilkat.Crypt2();

    crypt.CryptAlgorithm = "aes";
    crypt.CipherMode = "cbc";
    crypt.KeyLength = 128;

    crypt.SetEncodedKey("000102030405060708090A0B0C0D0E0F","hex");
    crypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex");

    crypt.EncodingMode = "hex";
    var txt1 = "The quick brown fox jumped over the lazy dog.\r\n";
    var txt2 = "-\r\n";
    var txt3 = "Done.\r\n";

    var sbEncrypted = new chilkat.StringBuilder();

    //  Encrypt the 1st chunk:
    //  (don't worry about feeding the data to the encryptor in 
    //  exact multiples of the encryption algorithm's block size.
    //  Chilkat will buffer the data.)
    crypt.FirstChunk = true;
    crypt.LastChunk = false;
    sbEncrypted.Append(crypt.EncryptStringENC(txt1));

    //  Encrypt the 2nd chunk
    crypt.FirstChunk = false;
    crypt.LastChunk = false;
    sbEncrypted.Append(crypt.EncryptStringENC(txt2));

    //  Now encrypt N more chunks...
    //  Remember -- we're doing this in CBC mode, so each call
    //  to the encrypt method depends on the state from previous
    //  calls...
    crypt.FirstChunk = false;
    crypt.LastChunk = false;
    var i;
    for (i = 0; i <= 4; i++) {
        sbEncrypted.Append(crypt.EncryptStringENC(txt1));
        sbEncrypted.Append(crypt.EncryptStringENC(txt2));
    }

    //  Now encrypt the last chunk:
    crypt.FirstChunk = false;
    crypt.LastChunk = true;
    sbEncrypted.Append(crypt.EncryptStringENC(txt3));

    console.log(sbEncrypted.GetAsString());

    //  Now decrypt in one call.
    //  (The data we're decrypting is both the first AND last chunk.)  
    crypt.FirstChunk = true;
    crypt.LastChunk = true;
    var decryptedText = crypt.DecryptStringENC(sbEncrypted.GetAsString());

    console.log(decryptedText);

    //  Note: You may decrypt in N chunks by setting the FirstChunk
    //  and LastChunk properties prior to calling the Decrypt* methods.

}

chilkatExample();