Ma sortie que je dois correspondre est de Java DESede en utilisant un BouncyCastle Jar de 2005 ... Je suis très proche ...C# DESede Symmetric ECB Encryption (Je suis si proche - des caractères légèrement différents)!
Voici ma sortie en Java (ce qui est correct) suivi de ma sortie en C# ... si vous affichez dans un éditeur, vous verrez qu'ils correspondent presque, sauf dans C# où il a une barre oblique "/" en Java il a "% 2F", "% 2D" et à la fin où C# est un "=", Java a "% 3D". Des idées? (J'ai ajouté des espaces pour montrer qu'ils correspondent -. Mais vous ne les voir dans un éditeur)
F3e8sdZ% 2F951IRiguIAVqfDLyWptqlbWik5tvFzItcxJCEmupzD9wXp% 2BDzIbrf2J2dPpXyEXL2QU% 3D (Java - Correct)
F3e8sdZ/951IRiguIAVqfDLyWptqlbWik5tvFzItcxJCEmupzD9wXp + DzIbrf2J2dPpXyEXL2QU = (C# ? - Fermer)
Voici mon code C#:
public static string DoubleTrippleDESede(string strToEncode, ref string symKey, ref ICryptoTransform cipher)
{
try
{
//byte[] input = Encoding.UTF8.GetBytes("DESede (3DES) Encryption in RAILO CFML");
byte[] input = Encoding.UTF8.GetBytes(strToEncode);
//byte[] key = Convert.FromBase64String("ru8femXhTm9jwdGdhb/4Sw==");
byte[] key = Convert.FromBase64String(symKey);
TripleDESCryptoServiceProvider algorithm = new TripleDESCryptoServiceProvider();
algorithm.Mode = CipherMode.ECB;
algorithm.BlockSize = 64;
algorithm.KeySize = 192; // 24 byte key
algorithm.Key = key; //Original
//algorithm.Key = key.CopyTo(algorithm.Key,)
cipher = algorithm.CreateEncryptor();
byte[] encrypted = cipher.TransformFinalBlock(input, 0, input.Length);
Debug.WriteLine("encrypted (.NET): {0}", Convert.ToBase64String(encrypted));
return Convert.ToBase64String(encrypted);
}
catch (Exception ex)
{
return ex.Message;
}
}
Tous les conseils seraient grandement appréciés !!!! J'y suis depuis 2 semaines et finalement goûter à la victoire (je pense !?)
Il semble que la sortie Java a été codée en url. Je * pense * que vous pouvez appeler 'System.Uri.EscapeDataString()' pour correspondre. –
Vous avez tellement raison ... alors quand je l'ai encodé, je reçois ce qui suit: F3e8sdZ% 2f951IRiguIAVqfDLyWptqlbWik5tvFzItcxJCEmupzD9wXp% 2bDzIbrf2J2dPpXyEXL2QU% 3d - notez que la seule différence est que Java "% 2F" devient "% 2f" (minuscule f). .. cela pourrait-il poser un problème? –
"% 2F" est "/" et "% 2D" est "=", supprimez l'encodage. – zaph