Visual C++ Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Visual C++ Examples

CkString
Byte Array
Bounced Mail
Bz2
Character Encoding
CSV
DH Key Exchange
DSA
Digital Certificates
Digital Signatures
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT / HTML Email
POP3
RSA
S/MIME
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
XMP
Zip Compression


More Examples...
Email Object
NTLM
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

 

 

 

 

 

 

 

 

Blowfish Encryption to Match PHP's Mcrypt Extension

Demonstrates how to match Blowfish encryption results with PHP's mcrypt extension.

Please refer to this PHP (non-Chilkat) example for PHP Blowfish Encryption. The code here matches the PHP mcrypt results on that page.

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

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

Download Chilkat C/C++ 64-bit Libraries for VC++ 8.0 / x64

Download Chilkat Visual Studio 2005 C/C++ Libs for Windows Mobile, Pocket PC, SmartPhone, WinCE

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

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

Download Chilkat C/C++ Libraries for VC++ 6.0, Win 95/98/NT4 Compatible

#include <CkCrypt2.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;
    }

    //  Use "blowfish2" to get proper results:
    crypt.put_CryptAlgorithm("blowfish2");

    //  CipherMode may be "ecb" or "cbc"
    crypt.put_CipherMode("cbc");

    //  KeyLength (in bits) may be a number between 32 and 448.
    //  128-bits is usually sufficient.  The KeyLength must be a
    //  multiple of 8.
    crypt.put_KeyLength(256);

    //  Pad with NULL bytes (PHP pads with NULL bytes)
    crypt.put_PaddingScheme(3);

    //  EncodingMode specifies the encoding of the output for
    //  encryption, and the input for decryption.
    //  It may be "hex", "url", "base64", or "quoted-printable".
    crypt.put_EncodingMode("hex");

    //  The blowfish algorithm uses a 64-bit block size,
    //  therefore the IV must be 8 bytes:
    const char * ivAscii;
    ivAscii = "12345678";
    crypt.SetEncodedIV(ivAscii,"ascii");

    //  For 256-bit encryption, the key is 32 bytes:
    const char * keyAscii;
    keyAscii = "1234567890123456ABCDEFGHIJKLMNOP";
    crypt.SetEncodedKey(keyAscii,"ascii");

    const char * plainText;
    plainText = "The quick brown fox jumped over the lazy dog";

    const char * cipherText;
    cipherText = crypt.encryptStringENC(plainText);
    printf("%s\n",cipherText);
    //  Output should be:
    //  276855ca6c0d60f7d9708210440c1072e05d078e733b34b4198d609dc2fcc2f0c30926cdef3b6d52baf6e345aa03f83e

    //  Do 128-bit Blowfish encryption:
    crypt.put_KeyLength(128);
    keyAscii = "1234567890123456";
    crypt.SetEncodedKey(keyAscii,"ascii");

    cipherText = crypt.encryptStringENC(plainText);
    printf("%s\n",cipherText);
    //  Output should be:
    //  d2b5abb73208aea3790621d028afcc74d8dd65fb9ea8e666444a72523f5ecca60df79a424e2c714fa6efbafcc40bdca0

    }

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

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

Mail Component · .NET Mail Component · XML Parser