import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class CipherTest { public static void main(String[] args) { try { byte[] keydata = { (byte) 0x00, (byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x04, (byte) 0x05, (byte) 0x06, (byte) 0x07, (byte) 0x08, (byte) 0x09, (byte) 0x0a, (byte) 0x0b, (byte) 0x0c, (byte) 0x0d, (byte) 0x0e, (byte) 0x0f, (byte) 0x10, (byte) 0x11, (byte) 0x12, (byte) 0x13, (byte) 0x14, (byte) 0x15, (byte) 0x16, (byte) 0x17, }; String algorithm = "DESede"; String clearTextString = "I wanna be with you."; String encoding = "US-ASCII"; // javax.crypto.spec.DESedeKeySpec SecretKey key = new SecretKeySpec(keydata, algorithm); Cipher cipher = Cipher.getInstance(algorithm); byte[] clearText = clearTextString.getBytes(encoding); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] encryptedText = cipher.doFinal(clearText); cipher.init(Cipher.DECRYPT_MODE, key); byte[] decryptedText = cipher.doFinal(encryptedText); System.out.println("********************************************"); System.out.println(new String(clearText, encoding)); System.out.println(bytesToString(clearText)); System.out.println("********************************************"); System.out.println(new String(encryptedText, encoding)); System.out.println(bytesToString(encryptedText)); System.out.println("********************************************"); System.out.println(new String(decryptedText, encoding)); System.out.println(bytesToString(decryptedText)); System.out.println("********************************************"); } catch (Exception e) { e.printStackTrace(); } } private static String bytesToString(byte[] b) { if (b == null) return null; StringBuffer sb = null; sb = new StringBuffer(); for (int i = 0; i < b.length; i++) { sb.append(Integer.toString((int) ((b[i] >> 4) & 0x0F), 16)); sb.append(Integer.toString((int) (b[i] & 0x0F), 16)); } return sb.toString().toUpperCase(); } }