最初に言っておきましょう....はい、ここ2日間でたくさんの投稿を読みました。いいえ、私は暗号化について何も知らないので、気にしないでください...あなたは火のコメントで遊ぶべきではありません..
asp.net MVC3 アプリケーションがあり、ユーザーが各ユーザーのキーを使用してアップロードする写真を暗号化したいと考えています。このキーを保存し、同じユーザーによるさらなるアップロードと復号化に使用したいと考えています。(ただし、代わりに各写真のキーを保存できると思いますが、この問題にはあまり関係ありませんが...)
ここのコードから始めました: http://www.codeproject.com/Articles/33344/Photo-Video-Viewer-with-Encryption-Capability
それは正常に動作します。写真を暗号化し、それらを新しいファイルに復号化します。すべて問題ありません。「オンザフライ バージョン」も機能し、WebImage に使用できる MemoryStream を返します。ただし、ご覧のとおり、この例では 1 つのパスで暗号化と復号化を行っており、キーはグローバル変数です (それが何であるかはわかりません。テスト時に自動生成されたキーを使用しただけです。
したがって、生成されたキー (および IV だと思いますか??? enc については何も知らないと言いました...) を各ユーザーのデータベースに保存し、その (それらの) 値を取得する方法を教えてくれる人が必要ですオンザフライの復号化に使用するためにバックアウトします。上記のサイトにあるものとほとんど同じであるため、すべてのコードをまだ投稿するつもりはありません。
ここで別の投稿を読んだところ、使用するように言われました:
string x = Convert.ToBase64String(RMCrypto.Key);
次に、復号化したいときに使用しました:
RMCrypto.Key = Convert.FromBase64String(x);
この方法でキーと IV の両方を SQL DB に保存しましたが、値を取得して復号化しようとすると、データが期待される長さではないというエラーが表示されます。
たぶん、私は完全にベースから外れているか、3行のコードである可能性があります...さらに情報が必要な場合はお知らせください。
ありがとう!