Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
File Encryption / DecryptionFile-to-file encryption in MFC using AES, Blowfish, RC2, ARC4, or 3DES. Downloads: MS Windows Visual C/C++ Libraries Linux/CentOS C/C++ Libraries MAC OS X C/C++ Libraries Solaris C/C++ Libraries C++ Builder Libraries FreeBSD C++ Libraries HP-UX C++ Libraries BlackBerry QNX C++ Libraries // Needs #include <CkCrypt2.h> CkString strOut; CkCrypt2 crypt; bool success; success = crypt.UnlockComponent("Anything for 30-day trial"); if (success != true) { strOut.append("Crypt component unlock failed\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } crypt.put_CryptAlgorithm("aes"); crypt.put_CipherMode("cbc"); crypt.put_KeyLength(128); const char * key; // 16 bytes of key for 128-bit encryption. key = "1234567890123456"; // The IV is equal to the block size of the encryption algorithm. const char * 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) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); 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) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("AES File Encryption Success.\r\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) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // 3DES Decrypt the file success = crypt.CkDecryptFile("tripleDesEncrypted.dat","hamlet_3des.xml"); if (success != true) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("3DES File Encryption Success.\r\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) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Blowfish Decrypt the file success = crypt.CkDecryptFile("blowfishEncrypted.dat","hamlet_blowfish.xml"); if (success != true) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("Blowfish File Encryption Success.\r\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) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // RC2 Decrypt the file success = crypt.CkDecryptFile("rc2Encrypted.dat","hamlet_rc2.xml"); if (success != true) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("RC2 File Encryption Success.\r\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) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // ARC4 Decrypt the file success = crypt.CkDecryptFile("arc4Encrypted.dat","hamlet_arc4.xml"); if (success != true) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("ARC4 File Encryption Success.\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.