![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Ruby) Streaming Encryption by Encrypting in ChunksEncrypt data in chunks.
require 'chilkat' # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. crypt = Chilkat::CkCrypt2.new() crypt.put_CryptAlgorithm("aes") crypt.put_CipherMode("cbc") crypt.put_KeyLength(128) crypt.SetEncodedKey("000102030405060708090A0B0C0D0E0F","hex") crypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex") crypt.put_EncodingMode("hex") txt1 = "The quick brown fox jumped over the lazy dog.\r\n" txt2 = "-\r\n" txt3 = "Done.\r\n" sbEncrypted = Chilkat::CkStringBuilder.new() # 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.put_FirstChunk(true) crypt.put_LastChunk(false) sbEncrypted.Append(crypt.encryptStringENC(txt1)) # Encrypt the 2nd chunk crypt.put_FirstChunk(false) crypt.put_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.put_FirstChunk(false) crypt.put_LastChunk(false) for i in 0 .. 4 sbEncrypted.Append(crypt.encryptStringENC(txt1)) sbEncrypted.Append(crypt.encryptStringENC(txt2)) end # Now encrypt the last chunk: crypt.put_FirstChunk(false) crypt.put_LastChunk(true) sbEncrypted.Append(crypt.encryptStringENC(txt3)) print sbEncrypted.getAsString() + "\n"; # Now decrypt in one call. # (The data we're decrypting is both the first AND last chunk.) crypt.put_FirstChunk(true) crypt.put_LastChunk(true) decryptedText = crypt.decryptStringENC(sbEncrypted.getAsString()) print decryptedText + "\n"; # Note: You may decrypt in N chunks by setting the FirstChunk # and LastChunk properties prior to calling the Decrypt* methods |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.