AutoIt
AutoIt
Streaming Encryption by Encrypting in Chunks
See more Encryption Examples
Encrypt data in chunks.Chilkat AutoIt Downloads
; 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