私は現在、暗号化と復号化のプログラミング スキルを向上させることに関心があり、Rijndael 暗号の例をいくつか見つけました。
C# で独自のプログラミングを開始し、[暗号化] ボタンをクリックしてダイアログ ウィンドウを開き、ファイルを選択できるようにします....これまでのところすべて正常に動作します
ファイルを選択し、コードをステップ実行して、ファイルのルート パスを取得し、キーを生成してから、プレーン テキストを暗号テキストに変換し始めます...ここで問題が発生します。
try
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "All Files (*.*)|";
dialog.InitialDirectory = @"Desktop";
dialog.Title = "Please select a file to encrypt.";
dialog.ShowDialog();
inputFile = dialog.FileName;
outputFile = inputFile;
string password = @"secrets"; // key to encrypt files
UnicodeEncoding UE = new UnicodeEncoding();
byte[] key = UE.GetBytes(password);
string cryptFile = outputFile;
FileStream fsCrypt = new FileStream(cryptFile, FileMode.Create);
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateEncryptor(key, key),
CryptoStreamMode.Write);
FileStream fsIn = new FileStream(inputFile, FileMode.Append);
int data;
while ((data = fsIn.ReadByte()) != -1)
cs.WriteByte((byte)data);
fsIn.Close();
cs.Close();
fsCrypt.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
このコードに到達すると問題が発生します
CryptoStream cs = new CryptoStream(fsCrypt,
RMCrypto.CreateEncryptor(key, key),
CryptoStreamMode.Write);
私が得るエラーは system.windows.forms.mouseeventargs です 誰でも私を助けることができますか?
編集!!!これが実際のエラー メッセージです。私のミスです。指定された初期化ベクトル (IV) が、このアルゴリズムのブロック サイズと一致しません。