FoxPro Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Visual FoxPro Examples

Bounced Mail
Bz2
Character Encoding
CSV
Digital Certificates
Digital Signatures
Email
Email Object
FTP
HTML Conversion
HTTP
IMAP
Encryption
MHT / HTML Email
POP3
RSA
S/MIME
Socket
Spider
SFTP
SMTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression
Self-Extractor

More Examples...
Amazon S3
DKIM / DomainKey
NTLM
RSS
Atom
Byte Array
Service
PPMD
Deflate
DH Key Exchange
DSA
FileAccess
Bzip2
LZW

 

Non-Chilkat Links
Text and String Handling

3DES Encryption (Triple-DES, 168-bit, TDEA, TDES)

Demonstrates 168-bit 3DES encryption.

Download Chilkat Crypt ActiveX

LOCAL loCrypt
LOCAL lnSuccess
LOCAL lcCipherText
LOCAL lcPlainText

loCrypt = CreateObject('Chilkat.Crypt2')

lnSuccess = loCrypt.UnlockComponent("Anything for 30-day trial")
IF (lnSuccess <> 1) THEN
    *  Unlock failed.
    =MESSAGEBOX(loCrypt.LastErrorText)
    QUIT
ENDIF

*  To get 3DES, set the algorithm = "des", and the
*  key length to 168 bits:
loCrypt.CryptAlgorithm = "des"
loCrypt.KeyLength = 168

*  The encrypted output will be a hex-encoded string.
*  It is also possible to use "base64", "url" (for url-encoding), and other modes.
loCrypt.EncodingMode = "hex"

*  Both ECB and CBC modes are available.
*  Use "ecb" for Electronic Cookbook Mode.
*  "cbc" is for Cipher-Block-Chaining.
loCrypt.CipherMode = "cbc"

*  Initialization vectors should equal the block-size of the algorithm.
*  for 3DES (and DES) the block-size is 8 bytes.
*  The IV may be set from an encoded string:
loCrypt.SetEncodedIV("0102030405060708","hex")

*  (it is also possible to set the IV directly from a byte array...)

*  The secret key should have a length equal to the bit-strength of
*  the algorithm.   In this case, we have 168-bit 3DES.  However,
*  with DES (and 3DES) the most significant bit of each key byte is
*  a parity bit, and therefore 168-bits really refers to a 192-bit key
*  where the 24 msb's are parity bits.  Our 3DES key should be 24 bytes in size.
loCrypt.SetEncodedKey("010203040506070801020304050607080102030405060708","hex")

*  (it is also possible to set the key directly from a byte array, or generate
*  a key from a arbitrary-length string password.)

*  3DES is a block encryption algorithm.  This means that output is always
*  a multiple of the algorithm's block size.  For 3DES, the block size is 8 bytes.
*  Therefore, if your input is not a multiple of 8 bytes, it will be padded.
*  There are several choices for padding (consult the Chilkat Crypt reference).
*  We'll pad with SPACE (0x20) characters:
loCrypt.PaddingScheme = 4

*  Note: If trying to match the results produced by two different 3DES implementations,
*  make sure to test with data that is longer than a single block (8 bytes for 3DES).
*  If all params match (IV, secret key, cipher mode, etc.) except for the padding, then
*  the results will be identical except for the last block of output.  If you test data is only
*  a single block, you cannot recognize the situation where all is correct except
*  for a padding mismatch.

lcCipherText = loCrypt.EncryptStringENC("ABCDEFGHIJKLMNLPQRSTUVWXYZ")
? lcCipherText
lcPlainText = loCrypt.DecryptStringENC(lcCipherText)
? lcPlainText

*  Note: Because we used SPACE character padding, the output string will contain trailing SPACE
*  chars, which can easily be trimmed.

*  (Other padding schemes embed the original input length in the padding so that the Decrypt* methods always
*  return the exact original data).

© 2000-2010 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · ASP Mail Component · XML Parser