.NET TripleDESCryptoServiceProvider equivalente em Java

Por favor, apenas não me pergunte por quê. Eu só tenho esse código no .net que criptografar / descriptografar seqüências de dados. Preciso agora fazer exatamente a mesma funcionalidade em java. Eu tentei vários exemplos para desede cripta, mas nenhum deles dá os mesmos resultados que esta classe no .net.

Eu mesmo fazendo um webserbvice .net por trás do ssl para servir esses dois métodos escritos em .net, mas é muito estúpido fazer sem esgotar todas as possibilidades.

Talvez alguns de vocês, pessoas que estão mais relacionadas na área, tenham em mente como fazê-lo.

Obrigado !!!

public class Encryption
{
  private static byte[] sharedkey = {...};
  private static byte[] sharedvector = {...};

  public static String Decrypt(String val)
  {
    TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
    byte[] toDecrypt = Convert.FromBase64String(val);
    MemoryStream ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, tdes.CreateDecryptor( sharedkey, sharedvector ), CryptoStreamMode.Write);

    cs.Write(toDecrypt, 0, toDecrypt.Length);
    cs.FlushFinalBlock();
    return Encoding.UTF8.GetString(ms.ToArray());
  }

  public static String Encrypt(String val)
  {
    TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
    byte[] toEncrypt = Encoding.UTF8.GetBytes(val);
    MemoryStream ms = new MemoryStream();
    CryptoStream cs = new CryptoStream(ms, tdes.CreateEncryptor( sharedkey, sharedvector ), CryptoStreamMode.Write);
    cs.Write(toEncrypt, 0, toEncrypt.Length);
    cs.FlushFinalBlock();
    return Convert.ToBase64String(ms.ToArray());
  }
}
Entrada / saída Samle
String plain = "userNameHere:passwordHere";
Console.WriteLine("plain: " + plain);


String encrypted = Encrypt(plain);
Console.WriteLine("encrypted: " + encrypted);
// "zQPZgQHpjxR+41Bc6+2Bvqo7+pQAxBBVN+0V1tRXcOc="

String decripted = Decrypt(encrypted);
Console.WriteLine("decripted: " + decripted); 
// "userNameHere:passwordHere"

questionAnswers(4)

yourAnswerToTheQuestion