PowerShell
PowerShell
Streaming Encryption by Encrypting in Chunks
See more Encryption Examples
Encrypt data in chunks.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$crypt = New-Object Chilkat.Crypt2
$crypt.CryptAlgorithm = "aes"
$crypt.CipherMode = "cbc"
$crypt.KeyLength = 128
$crypt.SetEncodedKey("000102030405060708090A0B0C0D0E0F","hex")
$crypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex")
$crypt.EncodingMode = "hex"
$txt1 = "The quick brown fox jumped over the lazy dog.`r`n"
$txt2 = "-`r`n"
$txt3 = "Done.`r`n"
$sbEncrypted = New-Object 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
for ($i = 0; $i -le 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))
$($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
$decryptedText = $crypt.DecryptStringENC($sbEncrypted.GetAsString())
$($decryptedText)
# Note: You may decrypt in N chunks by setting the FirstChunk
# and LastChunk properties prior to calling the Decrypt* methods