2016-09-13 14 views
0

ECCでの文章解読 このファイルの解読に問題があります。私はECCがSystem.Core.dllで 'System.Security.Cryptography.CryptographicException'型の最初のチャンス例外が発生しました

コードはここにあるここに画像の説明を入力します使用しています:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 
using System.Security.Cryptography; 



namespace eccdh_Forme.ECC 
{ 
    public class ECCDH 
    { 


     public static byte[] Enkripto(byte[] key, string MesazhiSekret) 
     { 

      AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); 
      key=aes.Key; 
      byte[] iv = aes.IV; 
      aes.BlockSize = 128; 
      aes.Mode = CipherMode.ECB; 
      aes.Padding = PaddingMode.PKCS7; 


      // Encrypt the message 
      using (MemoryStream ciphertext = new MemoryStream()) 
      using (CryptoStream cs = new CryptoStream(ciphertext, aes.CreateEncryptor(), CryptoStreamMode.Write)) 
      { 
       byte[] plaintextMessage = Encoding.UTF8.GetBytes(MesazhiSekret); 
       cs.Write(plaintextMessage, 0, plaintextMessage.Length); 
       cs.Close(); 
       byte[] cipherMesazhi = ciphertext.ToArray(); 
       return cipherMesazhi; 
      } 



     } 
     public static byte[] Dekripto(byte[] encryptedMessage, byte[] bobKey)//e shtuar e re mja pasu vleren 
     { 
      AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); 
      byte[] message; 
      bobKey=aes.Key; 
      byte[] iv = aes.IV; 

       // Decrypt the message 
      using (MemoryStream plaintext = new MemoryStream()) 
       { 
        using (CryptoStream cs = new CryptoStream(plaintext, aes.CreateDecryptor(), CryptoStreamMode.Write)) 
        { 
         cs.Write(encryptedMessage, 0, encryptedMessage.Length); 
         cs.Close();      
         message = plaintext.ToArray();      


        } 
       } 

       return message; 
     } 
    } 
} 

プログラムがコンパイルWENをストーピングされるが、私はこのコード行のテキストをdecriptしよう」cs.Close (); " フォームdecriptionはこれです:そこ多くの問題がここにありますが、ほとんどはそう、あなたの例外を発生させた1あなたは後方キーを割り当てるある enter image description here

+1

必要なものはすべて例外です。ただし、例外の完全な内容をコピーして[編集]に貼り付けることを拒否します。なぜあなたは私たちをそんなに憎むのですか? – Will

+0

完全なプロジェクトを送って問題を見ることはできますか?このプロジェクトのC#の新機能は教育です。私を助けてくれますか?はい、私はdropbox上でuploarすることができますここにリンクを剪断 –

答えて

0

。これは、

AesCryptoServiceProvider aes = new AesCryptoServiceProvider(); 
byte[] message; 
bobKey=aes.Key; 
byte[] iv = aes.IV; 

ランダムAESキーに設定しています。おそらく、これを行うためのもの:

aes.Key = bobKey; 

他のもの:

  1. あなたは初期化ベクトルを使用しようとしているように見えるが。私はなぜそれをキャプチャしているのか分かりませんが、ECBモードでは初期化ベクトルはありません。
  2. これは、暗号化と鍵交換の仕組みを理解するための学習練習であると仮定します。それは素晴らしいことです!ハッピー学習ですが、ここにはいくつかのセキュリティ問題があることに留意してください。主なものはECBを使用しており、MACはありません。これを運用システムに入れるために逃げ出す前に、それが意図であれば、私は鍵交換があなたに透過的になるように、より高度なアプローチを検討するでしょう。
+0

私はあなたに完全なプロジェクトを送って問題を見ることができますか?このプロジェクトのC#の新機能 は教育用です。私を助けてくれますか? はい、私はドロップボックスでuploarして、ここにリンクを盗むことができます –

+1

Whodaはそれを見ていますか? – Will

関連する問題