2016-12-02 3 views
-6

Я пытаюсь написать программу «enrypt-decrypt», и у меня есть некоторые проблемы с функцией расшифровки.Функция дешифрования не работает C#

Как-то я не могу сохранить считыватель потока «ReadToEnd()» в мою пустую строку под названием «текст».

Я нашел функцию в Интернете, и я попытался ее решить, изменив имя переменной и используя «IDisposed» вместо «using». Я не мог этого решить.

static string Decrypt(byte[] cipherText, byte[] Key, byte[] IV) 
{ 
    string text = String.Empty; 
    // Create an Aes object 
    // with the specified key and IV. 
    using (Aes aesAlg = Aes.Create()) 
    { 
     aesAlg.Key = Key; 
     aesAlg.IV = IV; 

     // Create a decrytor to perform the stream transform. 
     ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV); 

     // Create the streams used for decryption. 
     using (MemoryStream msDecrypt = new MemoryStream(cipherText)) 
     { 
      using (CryptoStream cs = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Write)) 
      { 

       using (StreamReader srDecrypt = new StreamReader(cs)) 
       { 
        // Read the decrypted bytes from the decrypting 
        stream 

       // and place them in a string. 
        text = srDecrypt.ReadToEnd(); 
       } 

      } 
     } 
    } 
    return text; 
} 

Текстовая строка определена только в этой функции, то ошибка происходит в строке:

текста = srDecrypt.ReadToEnd();

И он говорит:

Crypt.cs (145,29): ошибка CS0136: локальная переменная с именем «текст» не могут быть объявлены в этой области, потому что это дало бы иной смысл " текст ", который уже используется в` родителя или текущей области видимости для обозначения что-то еще компиляций не удался: 1 ошибка (ы), 0 предупреждений

+3

Какая строка является ошибкой? тоже почтовый индекс как ** фактический код **, нет изображения. Хотя, если бы мне пришлось угадать, где у вас есть 'string text = String.Empty();', у вас, вероятно, уже есть переменная с именем 'text' в вашем классе. –

+0

Немного пропало в вашем коде после «потока», но было бы намного проще, если бы вы отправили свой код (как текст) в StackOverflow, а не ссылку на растровое изображение. –

+0

Я хочу знать, почему * так много людей предпочитают размещать фотографии своего кода и ошибок вместо кода и самого текста ошибки. Может быть, это мета-тема ... но ПОЧЕМУ это происходит так часто? –

ответ

-1

Я думаю, что вы пропустите код здесь, причина, которая не является допустимой :

// Read the decrypted bytes from the decrypting 
stream 
+0

Что, по-вашему, я должен добавить после этого? Я не пропустил код, вставляя его здесь, это точно так же, как у меня. –

+0

Попробуйте удалить эту строку, тогда ваш код должен быть скомпилирован. –

Смежные вопросы