TripleDESCryptoServiceProvider в WP7 - PullRequest
       3

TripleDESCryptoServiceProvider в WP7

0 голосов
/ 09 февраля 2012

Я использую строку шифрования класса 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 .Подскажите, пожалуйста, как это изменить.

1 Ответ

0 голосов
/ 09 февраля 2012

Попробуйте это сообщение . Хотя, это для шифрования AES, это может помочь в вашей ситуации. Код Bouncy Castle поддерживает Triple DES.

Надеюсь, это поможет.

AFAIK, ECB не нужен вектор инициализации. Кроме того, избегайте ЕЦБ, если можете, альтернативы более безопасны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...