.NET odpowiednik TripleDESCryptoServiceProvider w Javie

Proszę, nie pytaj mnie dlaczego. Mam tylko ten kod w .NET, który szyfruje / deszyfruje ciągi danych. Muszę teraz zrobić „dokładnie” taką samą funkcjonalność w Javie. Próbowałem kilku przykładów krypty DESede, ale żadna z nich nie daje takich samych wyników jak ta klasa w .net.

Mimo, że stworzyłem serwer sieciowy .net za ssl, aby obsłużyć te dwie metody zapisane w .net, to jest to zbyt głupie, by zrobić to bez wyczerpania wszystkich możliwości.

Może niektórzy z was, ludzie z Jawy, którzy są bardziej spokrewnieni w okolicy, będą mieli na głowie, jak to zrobić.

Dzięki !!!

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());
  }
}
Wejście / wyjście 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