Java Example import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import java.util.TimeZone; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class ClubSoftTripleDESEncryption { public static String getToken(String key, String memberNumber, String firstName, String lastName, String email) { String retVal = ""; SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy HH:mm"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); String currentUTCDateTime = sdf.format(new Date()); String text = currentUTCDateTime + "|" + memberNumber + "|" + email + "|" + firstName + "|" + lastName + "|"; byte[] codedtext = null; try { codedtext = new ClubSoftTripleDESEncryption().encrypt(text, key); } catch (Exception ex) { retVal = ""; } finally { retVal = toHexString(codedtext); } return retVal; } public byte[] encrypt(String message, String inputKey) throws Exception { byte[] keyBytes = hexStringToByteArray(inputKey); SecretKey key = new SecretKeySpec(keyBytes, "TripleDES"); Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key); byte[] plainTextBytes = message.getBytes("utf-8"); byte[] cipherText = cipher.doFinal(plainTextBytes); return cipherText; } public static b yte[] hexStringToByteArray(String s) { int len = s.length(); byte[] data = new byte[len / 2]; for (int i = 0; i < len; i += 2) { data[i / 2] = (byte)((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16)); } return data; } public static String toHexString(byte[] bytes) { char[] hexArray = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' }; char[] hexChars = new char[bytes.length * 2]; int v; for (int j = 0; j < bytes.length; j++) { v = bytes[j] & 0xFF; hexChars[j * 2] = hexArray[v / 16]; hexChars[j * 2 + 1] = hexArray[v % 16]; } return new String(hexChars); } }