質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

解決済

暗号化が正常にできているかがわからない

JustinDover
JustinDover

総合スコア6

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

4回答

0リアクション

1クリップ

2870閲覧

投稿2019/11/26 02:50

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();

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

m.ts10806

2019/11/26 03:01

C#で確認できないですか?
JustinDover

2019/11/26 04:14

復号化のコードも作ってはいるのですが、その元になるデータが正しいか確認したい次第でして。
m.ts10806

2019/11/26 05:00

質問内容からはなにも調べてない試してない印象しかとれないので、きちんと追記願います。
JustinDover

2019/11/26 05:09

申し訳ありません。 復号化のコードは別の人間が作っているので、そのテスト用に提供するデータがきちんと出来ているか確認したかったのです。
m.ts10806

2019/11/26 05:14

質問は編集できますので適宜調整してください
m.ts10806

2019/11/26 05:15

特に前提や背景が抜けていると本来の目的にそったアドバイスは得られません。 回答者にとっては質問本文に書いてあることが全てです。各回答に散っているのを拾い集めるのもそれなりに負荷が高いです
JustinDover

2019/11/26 05:20

はい。申し訳ありません。
m.ts10806

2019/11/26 05:34

質問は編集できますので適宜調整してください

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。