Мой вывод, который я должен соответствовать от Java DESede с использованием Jar BouncyCastle с 2005 года ... Я очень близко ...C# DESede Симметричное шифрование ECB (я так близко - немного отличающиеся символы)!
Вот мой выход в Java (что правильно), а затем мой выход в C# ... если вы просмотрите в редакторе, вы увидите, что они ALMOST совпадают, за исключением C#, где он имеет косую черту «/» в Java, он имеет «% 2F», «% 2D» и в конце, где C# имеет a "=", Java имеет "% 3D". Есть идеи? (Я добавил пространства, чтобы показать, что они совпадают. - но вы будете видеть их только в редакторе)
F3e8sdZ% 2F951IRiguIAVqfDLyWptqlbWik5tvFzItcxJCEmupzD9wXp% 2BDzIbrf2J2dPpXyEXL2QU% 3D (Java - Корректное)
F3e8sdZ/951IRiguIAVqfDLyWptqlbWik5tvFzItcxJCEmupzD9wXp + DzIbrf2J2dPpXyEXL2QU = (C# ? - Закрыть)
Вот мой 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;
}
}
Любой руководство будет принята с благодарностью !!!! Я был на этом в течение 2 недель и, наконец, могу попробовать победу (я думаю !?)
Похоже, что выход Java был укоренен. Я * думаю * вы могли бы назвать 'System.Uri.EscapeDataString()' для соответствия. –
Вы так правы ... поэтому, когда я его кодирую, я получаю следующий F3e8sdZ% 2f951IRiguIAVqfDLyWptqlbWik5tvFzItcxJCEmupzD9wXp% 2bDzIbrf2J2dPpXyEXL2QU% 3d - обратите внимание, что только различие в том, что Java «% 2F» становится «% 2f» (нижний регистр f). .. может ли это проблема? –
«% 2F» - «/» и «% 2D» - «=», удалите кодировку. – zaph