Я использую строку шифрования класса TripleDESCryptoServiceProvider, которая предоставляется Здесь
Я получаю ту же зашифрованную строку в коде рабочего стола (не WP7 простой c #) с вектором инициализации = {0, 0, 0, 0, 0, 0, 0, 0}, но если я изменяю IV на {64, 64, 64, 64, 64, 64,64, 64}, я получаю разные зашифрованные строки.для преобразования из байтовой строки я использую кодировку base64.Вот мой код: Примечание. Если я использую зашифрованную строку WP7 tro decrypt на рабочем столе, первые 8 символов не будут расшифрованы правильно, остальные символы будут правильными.означает «Привет, друзья! Я в безопасности с TripleDES :)»);только "заканчивается! Я в безопасности с TripleDES :)" это очень правильно.немного мусора при запуске.
private static byte[] sharedkey ={
0x01, 0x02, 0x03, 0x05, 0x07, 0x0B, 0x0D, 0x11,
0x12, 0x11, 0x0D, 0x0B, 0x07, 0x02, 0x04, 0x08,
0x01, 0x02, 0x03, 0x05, 0x07, 0x0B, 0x0D, 0x11
};
private static byte[] sharedvector = new byte[] { 64, 64, 64, 64, 64, 64, 64, 64 };
var toEncrypt = Encoding.UTF8.GetBytes («Привет, друзья! Я в безопасности с TripleDES :)»);
TripleDESCryptoServiceProvider tdesAlgorithm = new TripleDESCryptoServiceProvider();
// Create the encryptor
ICryptoTransform encryptor = tdesAlgorithm.CreateEncryptor(sharedkey, sharedvector);
var cryptedBytes = encryptor.TransformFinalBlock(toEncrypt, 0, toEncrypt.Length);
// Create the decryptor
ICryptoTransform decryptor = tdesAlgorithm.CreateDecryptor(sharedkey, sharedvector);
var decryptedBytes = decryptor.TransformFinalBlock(cryptedBytes, 0, cryptedBytes.Length);
var uncryptedString = Encoding.UTF8.GetString(decryptedBytes, 0, decryptedBytes.Length);
EDIT: выглядиткак и для ЕЦБ, IV игнорируется.В коде, предоставленном Nocolus .Подскажите, пожалуйста, как это изменить.