Java Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Java Examples

Quick Start
Java Unicode
Java Certs
Java Email
Java Encryption
Java FTP
HTML-to-XML
Java HTTP
Java IMAP
Java MHT
Java MIME
Java RSA
Java S/MIME
Java Signatures
Java Socket
Java Spider
Java Tar
Java Upload
Java XML
Java XMP
Java Zip

More Examples...
Email Object
POP3
SMTP
RSS
Atom
String
Byte Array
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

ASCII / ANSI Secret Key in Symmetric Encryption

Using an ASCII (or ANSI) secret key w/ symmetric encryption: AES, Blowfish, Twofish, RC2, 3DES, etc.

Download Chilkat Java 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[])
  {
    CkCrypt2 crypt = new CkCrypt2();

    boolean success;
    success = crypt.UnlockComponent("Anything for 30-day trial");
    if (success != true) {
        System.out.println("Crypt component unlock failed");
        return;
    }

    //  A frequent support question goes something like this:
    //  ------------------
    //  I am not able to decrypt strings encrypted using
    //  cryptix.jce.provider.key.RawSecretKey (Java) like I would normally do.

    // The key generation is being done with the Rijndael algorithm (256-bit)
    //  The AES encryption algorithm is "Rijndael/ECB/PKCS#5"

    //  The 32 character source key I'm using is this:
    //  1234567890123456789012345678912
    // 
    //  ------------------
    //  The customer tries to call GenerateSecretKey to
    //  convert the 32-character source key to a binary secret key,
    //  but this is incorrect (in this case).  GenerateSecretKey
    //  hashes a string of any length and produces binary hash output
    //  that is of the appropriate size to be used as a secret key.

    //  The telltale sign is that in this case, the string is the exact
    //  length of the secret key.  32 ANSI characters = 256 bits.
    //  Therefore, it is obvious that the bytes of the binary
    //  secret key should be the exact ascii character values
    //  of the string.

    String encKey;
    encKey = "1234567890123456789012345678912";

    crypt.put_CryptAlgorithm("aes");
    //  Mode is "ecb" or "cbc"
    crypt.put_CipherMode("ecb");
    crypt.put_KeyLength(256);

    //  Call SetEncodedKey with "ascii" to tell the component
    //  to use the ascii-bytes as the binary secret key.
    //  Make sure you call this after setting the KeyLength.
    crypt.SetEncodedKey(encKey,"ascii");

    crypt.put_EncodingMode("base64");
    String text;
    text = "The quick brown fox jumped over the lazy dog.";

    //  Encrypt a string and return the binary encrypted data
    //  in a base-64 encoded string.
    String encText;
    encText = crypt.encryptStringENC(text);

    System.out.println(encText);

    //  Decrypt and show the original string:
    String decryptedText;
    decryptedText = crypt.decryptStringENC(encText);

    System.out.println(decryptedText);
  }
}

 

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

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