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

 

 

 

 

 

 

 

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

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[])
  {
    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-2010 Chilkat Software, Inc. All Rights Reserved.