C#でファイルの内容をAES256暗号化し、別のファイルに書き出すツールを作っています。
暗号化自体は正常に終了しているのですが、これが「AES256/CBC」できちんと暗号化されているか=正解かがわかりません。
OpenSSLなどがあればコマンドラインから出来そうですが、あいにくJAVAもPHPも入れられません。
どこかにブラウザからか、Windowsツールで「キー、IVが指定出来てAES256/CBCのファイル暗号化」が出来るツールはないでしょうか。
ちなみにコードは以下の感じです。
// ファイルサイズ取得 FileInfo file = new FileInfo(files[i]); long size = file.Length; // 読み込み領域メモリ確保 byte[] readBuff = new byte[size]; // 暗号化領域メモリ確保 byte[] angoBuff = new byte[size]; // ファイル読み込み //ファイルを開く System.IO.FileStream fsR = new System.IO.FileStream( files[i], System.IO.FileMode.Open, System.IO.FileAccess.Read); //ファイルの内容をすべて読み込む fsR.Read(readBuff, 0, readBuff.Length); //閉じる fsR.Close(); // 暗号化 AesManaged Aes = new AesManaged(); // 暗号化用設定 Aes.BlockSize = 128; // 128bit Aes.KeySize = 128; // 128bit Aes.Mode = CipherMode.CBC; Aes.Padding = PaddingMode.PKCS7; Aes.Key = System.Text.Encoding.ASCII.GetBytes(@"1234567890ABCDEF"); Aes.IV = System.Text.Encoding.ASCII.GetBytes(@"FEDCBA0987654321"); // 暗号化 ICryptoTransform encryptor = Aes.CreateEncryptor(Aes.Key, Aes.IV); // 暗号化した情報を暗号化領域に書き込む angoBuff = encryptor.TransformFinalBlock(readBuff, 0, (int)size); // 書き込みファイル名生成 // ファイル名だけ切り出し String FileName = System.IO.Path.GetFileName(files[i]); // 書き込みフルパス名組み立て String WriteFullPath = System.IO.Path.Combine(Dest_TextBox.Text, FileName); // ファイル書き込み System.IO.FileStream fsW = new System.IO.FileStream( WriteFullPath, System.IO.FileMode.Create, System.IO.FileAccess.Write); //バイト型配列の内容をすべて書き込む fsW.Write(angoBuff, 0, (int)angoBuff.Length); //閉じる fsW.Close();
C#で確認できないですか?
復号化のコードも作ってはいるのですが、その元になるデータが正しいか確認したい次第でして。
質問内容からはなにも調べてない試してない印象しかとれないので、きちんと追記願います。
申し訳ありません。
復号化のコードは別の人間が作っているので、そのテスト用に提供するデータがきちんと出来ているか確認したかったのです。
質問は編集できますので適宜調整してください
特に前提や背景が抜けていると本来の目的にそったアドバイスは得られません。
回答者にとっては質問本文に書いてあることが全てです。各回答に散っているのを拾い集めるのもそれなりに負荷が高いです
はい。申し訳ありません。
質問は編集できますので適宜調整してください
回答4件
あなたの回答
tips
プレビュー