grazie, ma avevo già cercato sul forum e tutti i vari script o non mi andavano o mi mancavano librerie !!
ho risolto con questa classe che ho trvato quasi per caso :

codice:
import java.io.UnsupportedEncodingException;

public class Crypt
{
	private static final String [] DEFAULT_KEYS = {
		"01210ACB39201293948ABE4839201CDF",
		"123219843895AFDE3920291038103839",
		"89128912093908120983980981098309",
		"AABBCCDD019201920384383728298109"
	};
	private static boolean updatedProps = false;
	private static final char[] hexDigits = {
		'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'
	};

	private byte [][] keys = null;

	public Crypt() {
		init(this.DEFAULT_KEYS);
	}

	public Crypt(String [] keystrs) {
		init(keystrs);
	}

	private void init(String [] keystrs) {
		keys = new byte[keystrs.length][];
		for (int i = 0; i < keys.length; i++) {
			keys[i] = fromString(keystrs[i]);
		}
	}

	private String toString(byte[] ba) {
		char[] buf = new char[ba.length * 2];
		int j = 0;
		int k;

		for (int i = 0; i < ba.length; i++) {
			k = ba[i];
			buf[j++] = hexDigits[(k >>> 4) & 0x0F];
			buf[j++] = hexDigits[ k        & 0x0F];
		}
		return new String(buf);
	}

	private int fromDigit(char ch) {
		if (ch >= '0' && ch <= '9')
			return ch - '0';
		if (ch >= 'A' && ch <= 'F')
			return ch - 'A' + 10;
		if (ch >= 'a' && ch <= 'f')
			return ch - 'a' + 10;

		throw new IllegalArgumentException("invalid hex digit '" + ch + "'");
	}

	private byte[] fromString(String hex) {
		int len = hex.length();
		byte[] buf = new byte[((len + 1) / 2)];

		int i = 0, j = 0;
		if ((len % 2) == 1)
			buf[j++] = (byte) fromDigit(hex.charAt(i++));

		while (i < len) {
			buf[j++] = (byte) ((fromDigit(hex.charAt(i++)) << 4) |
								fromDigit(hex.charAt(i++)));
		}
		return buf;
	}

	private byte encrypt(byte d, byte [] key) {
		byte e;

		e = d;
		for (int i = 0; i < key.length; i++) {
			e = (byte) ((int) e ^ (int) key[i]);
		}

		return e;
	}

	private byte decrypt(byte e, byte [] key) {
		byte d;

		d = e;
		for (int i = key.length-1; i >= 0; i--) {
			d = (byte) ((int) d ^ (int) key[i]);
		}

		return d;
	}

	public String encrypt(String orig) {
		byte [] ect = null;
		int size;
		byte [] origBytes = null;
        
		try {
			origBytes = orig.getBytes("UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			throw new RuntimeException(e.toString());
		}

		ect = new byte[origBytes.length];
		for (int i = 0; i < origBytes.length; i += keys.length) {
			for (int j = 0; j < keys.length; j++) {
				if ((i+j) >= origBytes.length) {
					break;
				} else {
					ect[i+j] = encrypt(origBytes[i+j], keys[j]);
				}
			}
		}

		return toString(ect);
	}

	public String decrypt(String ectstr) {
		byte [] ect = null;
		int size;
		byte [] origBytes = null;
		String dctStr = null;

		ect = fromString(ectstr);
		origBytes = new byte[ect.length];
		for (int i = 0; i < origBytes.length; i += keys.length) {
			for (int j = 0; j < keys.length; j++) {
				if ((i+j) >= origBytes.length) {
					break;
				} else {
					origBytes[i+j] = decrypt(ect[i+j], keys[j]);
				}
			}
		}

		try {
			dctStr = new String(origBytes, "UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
			throw new RuntimeException(e.toString());
		}
		return dctStr;
	}

}
cmq grazie 1000 !!!