Visual FoxPro
Visual FoxPro
Streaming Encryption by Encrypting in Chunks
See more Encryption Examples
Encrypt data in chunks.Chilkat Visual FoxPro Downloads
LOCAL loCrypt
LOCAL lcTxt1
LOCAL lcTxt2
LOCAL lcTxt3
LOCAL loSbEncrypted
LOCAL i
LOCAL lcDecryptedText
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loCrypt = CreateObject('Chilkat.Crypt2')
loCrypt.CryptAlgorithm = "aes"
loCrypt.CipherMode = "cbc"
loCrypt.KeyLength = 128
loCrypt.SetEncodedKey("000102030405060708090A0B0C0D0E0F","hex")
loCrypt.SetEncodedIV("000102030405060708090A0B0C0D0E0F","hex")
loCrypt.EncodingMode = "hex"
lcTxt1 = "The quick brown fox jumped over the lazy dog." + CHR(13) + CHR(10)
lcTxt2 = "-" + CHR(13) + CHR(10)
lcTxt3 = "Done." + CHR(13) + CHR(10)
loSbEncrypted = CreateObject('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.)
loCrypt.FirstChunk = 1
loCrypt.LastChunk = 0
loSbEncrypted.Append(loCrypt.EncryptStringENC(lcTxt1))
* Encrypt the 2nd chunk
loCrypt.FirstChunk = 0
loCrypt.LastChunk = 0
loSbEncrypted.Append(loCrypt.EncryptStringENC(lcTxt2))
* 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...
loCrypt.FirstChunk = 0
loCrypt.LastChunk = 0
FOR i = 0 TO 4
loSbEncrypted.Append(loCrypt.EncryptStringENC(lcTxt1))
loSbEncrypted.Append(loCrypt.EncryptStringENC(lcTxt2))
NEXT
* Now encrypt the last chunk:
loCrypt.FirstChunk = 0
loCrypt.LastChunk = 1
loSbEncrypted.Append(loCrypt.EncryptStringENC(lcTxt3))
? loSbEncrypted.GetAsString()
* Now decrypt in one call.
* (The data we're decrypting is both the first AND last chunk.)
loCrypt.FirstChunk = 1
loCrypt.LastChunk = 1
lcDecryptedText = loCrypt.DecryptStringENC(loSbEncrypted.GetAsString())
? lcDecryptedText
* Note: You may decrypt in N chunks by setting the FirstChunk
* and LastChunk properties prior to calling the Decrypt* methods
RELEASE loCrypt
RELEASE loSbEncrypted