Java Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Java Examples

Quick Start
Unicode
Bz2
Certificates
CSV
Email
Encryption
FTP
HTML-to-XML
HTTP
IMAP
MHT
MIME
POP3
RSA
S/MIME
SFTP
Signatures
SMTP
Socket / SSL
Spider
SSH
SSH Key
SSH Tunnel
Tar
Upload
XML
XMP
Zip

More Examples...
Email Object
DKIM / DomainKey
NTLM
FileAccess
RSS
Atom
String
Byte Array
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
Bzip2
LZW

 

 

 

 

 

 

 

RSA Encrypt and Decrypt Credit Card Numbers

Java 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 Java Library

Download Chilkat Java x64 Library

import com.chilkatsoft.*;

public class ChilkatExample {

  static {
    try {
        System.loadLibrary("chilkat");
    } catch (UnsatisfiedLinkError e) {
      System.err.println("Native code library failed to load.\n" + e);
      System.exit(1);
    }
  }

  public static void main(String argv[])
  {
    CkRsa rsa = new CkRsa();

    boolean success;
    success = rsa.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        System.out.println(rsa.lastErrorText());
        return;
    }

    CkPrivateKey key = new CkPrivateKey();

    //  Load an RSA private key from a PKCS8 file:
    success = key.LoadPkcs8File("rsaPrivateKey.p8");
    if (success != true) {
        System.out.println(key.lastErrorText());
        return;
    }

    //  Get the key as XML:
    String 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) {
        System.out.println(rsa.lastErrorText());
        return;
    }

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

    boolean usePrivateKey;
    usePrivateKey = false;
    rsa.put_EncodingMode("base64");
    String encryptedStr;
    encryptedStr = rsa.encryptStringENC(ccNumber,usePrivateKey);
    System.out.println("Encrypted:");
    System.out.println(encryptedStr);

    //  Now decrypt:
    CkRsa rsaDecryptor = new CkRsa();

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

    usePrivateKey = true;
    String decryptedStr;
    decryptedStr = rsaDecryptor.decryptStringENC(encryptedStr,usePrivateKey);

    System.out.println("Decrypted:");
    System.out.println(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.