Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

CkString
Byte Array
Bounced Mail
Character Encoding
Digital Certificates
Digital Signatures
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
RSA Encryption
S/MIME
Socket
Spider
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor

Unreleased...
Service
PPMD
Deflate
Bzip2
LZW
Bz2
DH Key Exchange
DSA
Icon

 

 

 

 

 

 

 

 

File Encryption / Decryption

File-to-file encryption in C++ using AES, Blowfish, RC2, ARC4, or 3DES.

Download Chilkat C++ Libraries for VC++ 8.0 / Win32

Download Chilkat C++ Libraries for VC++ 7.0 / Win32

Download Chilkat C++ Libraries for VC++ 6.0 / Win32

#include <CkCrypt2.h>
#include <CkString.h>

void ChilkatSample(void)
    {
    CkCrypt2 crypt;

    bool success;
    success = crypt.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        printf("Crypt component unlock failed\n");
        return;
    }

    crypt.put_CryptAlgorithm("aes");
    crypt.put_CipherMode("cbc");
    crypt.put_KeyLength(128);

    CkString key;
    //  16 bytes of key for 128-bit encryption.
    key = "1234567890123456";

    //  The IV is equal to the block size of the encryption algorithm.
    CkString iv;
    iv = "1234567890123456";

    //  Set the key.
    crypt.SetEncodedKey(key,"ascii");

    //  Set the IV
    crypt.SetEncodedIV(iv,"ascii");

    //  AES Encrypt the file (the file may be any size because it will
    //  stream the file in/out.
    success = crypt.CkEncryptFile("hamlet.xml","aesEncrypted.dat");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    //  AES Decrypt the file (the file may be any size because it will
    //  stream the file in/out.
    success = crypt.CkDecryptFile("aesEncrypted.dat","hamlet_aes.xml");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    printf("AES File Encryption Success.\n");

    //  Now do 3DES file encryption:

    //  To use Triple-DES, set the algorithm = "des",
    //  and the key length = 168.
    //  To use DES, set the key length = 56 bits.
    crypt.put_CryptAlgorithm("des");
    crypt.put_CipherMode("cbc");
    crypt.put_KeyLength(168);

    //  3DES Encrypt the file
    success = crypt.CkEncryptFile("hamlet.xml","tripleDesEncrypted.dat");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    //  3DES Decrypt the file
    success = crypt.CkDecryptFile("tripleDesEncrypted.dat","hamlet_3des.xml");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    printf("3DES File Encryption Success.\n");

    //  Do Blowfish file encryption:

    //  To use Blowfish, set the algorithm = "blowfish2".
    //  The original Chilkat "blowfish" implementation outputs
    //  4321 swapped bytes.  "blowfish2" output is in the correct
    //  byte order.
    crypt.put_CryptAlgorithm("blowfish2");
    crypt.put_CipherMode("cbc");
    crypt.put_KeyLength(128);

    //  Blowfish Encrypt the file
    success = crypt.CkEncryptFile("hamlet.xml","blowfishEncrypted.dat");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    //  Blowfish Decrypt the file
    success = crypt.CkDecryptFile("blowfishEncrypted.dat","hamlet_blowfish.xml");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    printf("Blowfish File Encryption Success.\n");

    //  Do RC2 file encryption:

    //  To use RC2, set the algorithm = "rc2".
    //  Also, set the Rc2EffectiveKeyLength property.
    crypt.put_CryptAlgorithm("rc2");
    crypt.put_CipherMode("cbc");
    //  Key length and effective key length should range
    //  from 8 to 1024 bits.
    crypt.put_KeyLength(128);
    crypt.put_Rc2EffectiveKeyLength(128);

    //  RC2 Encrypt the file
    success = crypt.CkEncryptFile("hamlet.xml","rc2Encrypted.dat");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    //  RC2 Decrypt the file
    success = crypt.CkDecryptFile("rc2Encrypted.dat","hamlet_rc2.xml");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    printf("RC2 File Encryption Success.\n");

    //  Do ARC4 file encryption:

    //  To use ARC4, set the algorithm = "arc4".
    crypt.put_CryptAlgorithm("arc4");
    crypt.put_KeyLength(128);

    //  ARC4 Encrypt the file
    success = crypt.CkEncryptFile("hamlet.xml","arc4Encrypted.dat");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    //  ARC4 Decrypt the file
    success = crypt.CkDecryptFile("arc4Encrypted.dat","hamlet_arc4.xml");
    if (success != true) {
        printf("%s\n",crypt.lastErrorText());
        return;
    }

    printf("ARC4 File Encryption Success.\n");


    }

Need a specific example? Send a request to support@chilkatsoft.com

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

Mail Component · .NET Mail Component · XML Parser