暗号化が正常にできているかがわからない
解決済
回答 4
投稿
- 評価
- クリップ 1
- VIEW 1,241
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ページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+2
一番確実なのはOpenSSL(ライブラリではなくコマンド)のプリコンパイル済みを導入する
次点が、msys2/cygwinにてopensslを導入する になるかと思います。
変わり種が、Git for WindowsのGit bashからopensslを利用する事です。
opensslコマンドについては、調べれば使い方がでてきます。
gitも導入できないのであればブラウザからweb crypt apiを使うことになります。
追記
IPAのATR-01-Bによると、テストデータにはNISTのAESAVSに記載されてるテストベクタを用いる。
となっています。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
復号化するものも作って、正常に復号できれば暗号化出来ていたことになるのでは?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
checkベストアンサー
0
異なる言語を使用した検証では、オプションパラメータを確認したくなるはずなので、自前で用意したほうが良いと思います。
heroku あたりに適当に環境を作ってみては?
コード残す必要がないのであれば、paiza.io でも良いかも。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
0
質問するより検索した方が早いのでは?
ググったら、こんなんでましたけど。
短い文で、複合して検証してみては、どうでしょうか?
結果が違う場合、元のコードが悪いのかツールが悪いのかは確認できないですが・・・
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.21%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
m.ts10806
2019/11/26 12:01
C#で確認できないですか?
JustinDover
2019/11/26 13:14
復号化のコードも作ってはいるのですが、その元になるデータが正しいか確認したい次第でして。
m.ts10806
2019/11/26 14:00
質問内容からはなにも調べてない試してない印象しかとれないので、きちんと追記願います。
JustinDover
2019/11/26 14:09
申し訳ありません。
復号化のコードは別の人間が作っているので、そのテスト用に提供するデータがきちんと出来ているか確認したかったのです。
m.ts10806
2019/11/26 14:14
質問は編集できますので適宜調整してください
m.ts10806
2019/11/26 14:15
特に前提や背景が抜けていると本来の目的にそったアドバイスは得られません。
回答者にとっては質問本文に書いてあることが全てです。各回答に散っているのを拾い集めるのもそれなりに負荷が高いです
JustinDover
2019/11/26 14:20
はい。申し訳ありません。
m.ts10806
2019/11/26 14:34
質問は編集できますので適宜調整してください