![]() |
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
(AutoIt) Encrypting a Data StreamThis example illustrates encrypting a large dataset using symmetric encryption algorithms like
You can provide data chunks smaller than the encryption algorithm's block size. For example, AES uses 16-byte blocks;
Chilkat handles the buffering of data as needed. If a data chunk smaller than the block size is provided, an empty string (or 0 bytes) is returned, and the data is buffered to be combined with subsequent chunks. The final chunk is padded to the algorithm's block size (as determined by the Chunk-wise decryption follows the same procedure as chunk-wise encryption.
; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. $oCrypt = ObjCreate("Chilkat.Crypt2") $oCrypt.CryptAlgorithm = "aes" $oCrypt.CipherMode = "cbc" $oCrypt.KeyLength = 128 $oCrypt.SetEncodedKey "000102030405060708090A0B0C0D0E0F","hex" $oCrypt.SetEncodedIV "000102030405060708090A0B0C0D0E0F","hex" $oCrypt.EncodingMode = "hex" Local $sTxt1 = "The quick brown fox jumped over the lazy dog." & @CRLF Local $sTxt2 = "-" & @CRLF Local $sTxt3 = "Done." & @CRLF $oSbEncrypted = ObjCreate("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.) $oCrypt.FirstChunk = True $oCrypt.LastChunk = False $oSbEncrypted.Append($oCrypt.EncryptStringENC($sTxt1)) ; Encrypt the 2nd chunk $oCrypt.FirstChunk = False $oCrypt.LastChunk = False $oSbEncrypted.Append($oCrypt.EncryptStringENC($sTxt2)) ; 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... $oCrypt.FirstChunk = False $oCrypt.LastChunk = False Local $i For $i = 0 To 4 $oSbEncrypted.Append($oCrypt.EncryptStringENC($sTxt1)) $oSbEncrypted.Append($oCrypt.EncryptStringENC($sTxt2)) Next ; Now encrypt the last chunk: $oCrypt.FirstChunk = False $oCrypt.LastChunk = True $oSbEncrypted.Append($oCrypt.EncryptStringENC($sTxt3)) ConsoleWrite($oSbEncrypted.GetAsString() & @CRLF) ; Now decrypt in one call. ; (The data we're decrypting is both the first AND last chunk.) $oCrypt.FirstChunk = True $oCrypt.LastChunk = True Local $sDecryptedText = $oCrypt.DecryptStringENC($oSbEncrypted.GetAsString()) ConsoleWrite($sDecryptedText & @CRLF) ; 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.