2016-12-02 5 views
-6

暗号化復号化プログラムを作成しようとしていますが、復号化機能に問題があります。復号化機能が動作しないc#

何とか私は "テキスト"と呼ばれる空の文字列に "ReadToEnd()"というストリームリーダーを保存できません。

私はインターネット上で関数arroundを見つけました。変数名を変更し、 "using"ではなく "IDisposed"を使用して解決しようとしました。私はそれを解決することができませんでした。

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つのエラー(s)は、0の警告私はあなたがここにいくつかのコードを逃すと思う

+3

エラーは何行ですか? **実際のコード**、画像ではなくポストコード。あなたが 'string text = String.Empty();'を持つ場所を推測しなければならない場合は、クラスに 'text'という名前の変数が既に存在している可能性があります。 –

+0

'ストリーム'の後にコードに欠損がありますが、ビットマップへのリンクではなく、コードを(テキストとして)StackOverflowに投稿する方がずっと簡単です。 –

+0

私はなぜ*多くの人がコードとエラーテキストの代わりに自分のコードとエラーの写真を投稿する方が好きであるか知りたいです。たぶんこれはメタトピックです...しかし、なぜそれほど頻繁に起こりますか? –

答えて

-1

、原因を:

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

これの後に私は何を追加すべきだと思いますか?私はコードをここに貼り付けるのを忘れていませんでした。それは私のようなものです –

+0

この行を削除してみると、あなたのコードはコンパイルされます。 –

関連する問題