![]() |
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
(PowerBuilder) Streaming Encryption by Encrypting in ChunksEncrypt data in chunks.
integer li_rc oleobject loo_Crypt string ls_Txt1 string ls_Txt2 string ls_Txt3 oleobject loo_SbEncrypted integer i string ls_DecryptedText // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loo_Crypt = create oleobject li_rc = loo_Crypt.ConnectToNewObject("Chilkat.Crypt2") if li_rc < 0 then destroy loo_Crypt MessageBox("Error","Connecting to COM object failed") return end if loo_Crypt.CryptAlgorithm = "aes" loo_Crypt.CipherMode = "cbc" loo_Crypt.KeyLength = 128 loo_Crypt.SetEncodedKey("000102030405060708090A0B0C0D0E0F","hex") loo_Crypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex") loo_Crypt.EncodingMode = "hex" ls_Txt1 = "The quick brown fox jumped over the lazy dog.~r~n" ls_Txt2 = "-~r~n" ls_Txt3 = "Done.~r~n" loo_SbEncrypted = create oleobject li_rc = loo_SbEncrypted.ConnectToNewObject("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.) loo_Crypt.FirstChunk = 1 loo_Crypt.LastChunk = 0 loo_SbEncrypted.Append(loo_Crypt.EncryptStringENC(ls_Txt1)) // Encrypt the 2nd chunk loo_Crypt.FirstChunk = 0 loo_Crypt.LastChunk = 0 loo_SbEncrypted.Append(loo_Crypt.EncryptStringENC(ls_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... loo_Crypt.FirstChunk = 0 loo_Crypt.LastChunk = 0 for i = 0 to 4 loo_SbEncrypted.Append(loo_Crypt.EncryptStringENC(ls_Txt1)) loo_SbEncrypted.Append(loo_Crypt.EncryptStringENC(ls_Txt2)) next // Now encrypt the last chunk: loo_Crypt.FirstChunk = 0 loo_Crypt.LastChunk = 1 loo_SbEncrypted.Append(loo_Crypt.EncryptStringENC(ls_Txt3)) Write-Debug loo_SbEncrypted.GetAsString() // Now decrypt in one call. // (The data we're decrypting is both the first AND last chunk.) loo_Crypt.FirstChunk = 1 loo_Crypt.LastChunk = 1 ls_DecryptedText = loo_Crypt.DecryptStringENC(loo_SbEncrypted.GetAsString()) Write-Debug ls_DecryptedText // Note: You may decrypt in N chunks by setting the FirstChunk // and LastChunk properties prior to calling the Decrypt* methods destroy loo_Crypt destroy loo_SbEncrypted |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.