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
DKIM/DomainKeys
Digital Certificates
Digital Signatures
DSA
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

 

 

 

 

 

 

 

 

RSA Encrypt and Decrypt Credit Card Numbers

C++ sample code to RSA public-key encrypt and decrypt credit card numbers. The RSA key is loaded from an unencrypted PKCS8 file. Chilkat provides many ways of setting the key -- loading from both encrypted and unencrypted PEM, PKCS8, DER, PVK, etc. Keys may be loaded from files or in-memory representations. (The RSA component also provides the ability to generate RSA keys.)

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

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

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 <CkRsa.h>
#include <CkPrivateKey.h>

void ChilkatSample(void)
    {
    CkRsa rsa;

    bool success;
    success = rsa.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        printf("%s\n",rsa.lastErrorText());
        return;
    }

    CkPrivateKey key;

    //  Load an RSA private key from a PKCS8 file:
    success = key.LoadPkcs8File("rsaPrivateKey.p8");
    if (success != true) {
        printf("%s\n",key.lastErrorText());
        return;
    }

    //  Get the key as XML:
    const char * keyXml;
    keyXml = key.getXml();

    //  We'll encrypt with the public key and decrypt with the private
    //  key.  (It's also possible to do the reverse.)
    //  Note: An RSA private key is composed of different parts internally: modulus, exponent, P, Q, etc.
    //  An RSA public-key is a sub-set of the private key.
    //  Therefore, when you have a private key, you really have
    //  both public and private keys.
    success = rsa.ImportPublicKey(keyXml);
    if (success != true) {
        printf("%s\n",rsa.lastErrorText());
        return;
    }

    //  Encrypt a VISA credit card number:
    //  1234-5678-0000-9999
    const char * ccNumber;
    ccNumber = "1234567800009999";

    bool usePrivateKey;
    usePrivateKey = false;
    rsa.put_EncodingMode("base64");
    const char * encryptedStr;
    encryptedStr = rsa.encryptStringENC(ccNumber,usePrivateKey);
    printf("Encrypted:\n");
    printf("%s\n",encryptedStr);

    //  Now decrypt:
    CkRsa rsaDecryptor;

    rsaDecryptor.put_EncodingMode("base64");
    rsaDecryptor.ImportPrivateKey(keyXml);

    usePrivateKey = true;
    const char * decryptedStr;
    decryptedStr = rsaDecryptor.decryptStringENC(encryptedStr,usePrivateKey);

    printf("Decrypted:\n");
    printf("%s\n",decryptedStr);

    //  Important: RSA encryption should only be used to encrypt small amounts of data.
    //  It is typically used for encrypting symmetric encryption
    //  keys such that a symmetric encryption algorithm, such as
    //  AES is then used to encrypt/decrypt bulk data.

    }

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

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

Mail Component · .NET Mail Component · XML Parser