-3

質問はより一般的に建設的な点と実現からのものですが、例や例とのリンクに感謝します(理論だけではありません)。

考え方は次のとおりです。

  1. すべてをローカルで行う必要があります。
  2. どんなライブラリでも許可されていますが、プログラム全体が移植可能であるべきです。
  3. プラットフォーム - Win7+
  4. 完全にサイズ制限なし。
  5. より安全 - より良い。
  6. WPF。

理由は聞かないでください。上記の ^ はすべて必須であり、要点です。

これでポイント自体に近づきます。したがって、プログラムのワークフローとデータ管理は次のようになります。

  • ユーザーは、難読化された単一インスタンスなどを開始します(例ではこれを省略できます)WPF exe。
  • ユーザーがファイルを選択します (既に存在する場合は保存時に上書きされ、存在しない場合は保存時に作成されます) (これも省略できます)。
  • これで、ユーザーは暗号化に必要なすべてのデータを提供します (たとえば、AES の場合 - キーと IV) (暗号化は議論のためにアップされています - もちろん、テキストの壁全体を読んだ後、どちらが私に適していると思うか、その理由を教えてください。ありがとう) を押して続行し、ファイルから暗号化されたデータを読み取ります (ファイルが選択されている場合)。

先に進む前に、データの構造を理解する必要があります。

Dictionary<Tuple<string, string, string>, Dictionary<string, string>>
  • したがって、Tuple の値は、ファイルから一度にロードする必要がある 3 つの等しく重要な文字列のようなものです (さらに説明することは、それらがどのように機能するかが正確ではないことはわかっていますが、既に述べたように ^ Dictionary は視覚化と説明の容易さのためだけに、データ管理は提案のためにUPしています)。
  • ユーザーには 3 つの検索テキストボックスが付与され、これら 3 つのいずれかまたはすべてを一度に検索して、結果をテーブル/リストの形式で表示できるはずです (今のところ、データセットは次のように見えることがわかっています)。行きますが、すべてがそれほど単純である場合、私はあなたの助けを求めません)。この時点で、ユーザーはその ^ ディクショナリの新しい KeyValue ペアを作成し、結果を保存して、復号化され、ファイルが追加/上書きされるか、新しい場合は書き込まれるようにする必要があります。
  • ユーザーが結果に満足したら、必要なものを選択して続行できます。選択したキーについて、すべての値のキーが暗号化されたファイルから読み込まれますが、それぞれの値は読み込まれません。これらのキーはすべて、ある種のリストで表されます。
  • もう一度スクロールして、キーを選択し、4 つのボタンのいずれかを押します。

    1. 削除 - キーと値を削除しますが、タプルのままです。

    2. コピー - ファイルからそれぞれの値をロードし、クリップボードに入れます。

    3. 編集 - それぞれの値をロードし、キーと値の両方を編集できます。

    4. New - 新しい KeyValue ペアを作成します。

  • ユーザーはいつでも保存を押すことができ、現在の状態が暗号化されたファイルに保存されます。または、他のファイルに保存します(この場合、すべての値を取得する代わりに、そのファイルをコピーして変更する必要があります)。

  • ユーザーは、値の追加と変更を行ったり来たりすることができます。
  • ユーザーが結果に満足したら、アプリを閉じて、テキストの壁を終了します。

また、ロードされたすべての値を安全な文字列に保存する必要がありますか、それとももっと良いものがありますか? (サードパーティのプログラムがメモリから読み取れないように、過去にアプリの呼び出しやインジェクションを防止する何らかのセキュリティを開発しましたが、それでも-安全な文字列または何か他のものですか?)。

とにかく、この部分まで読んでくれるすべての人に感謝します。質問がある場合、または私の質問の一部を理解していない場合は、お知らせください。詳しく説明したり、より詳しく説明したりします。ありがとうございます。

編集 1: オーケー アレックスtl/drを作成してみます:

パート 1 - ファイルからデータのチャンクを部分的に復号化してデシリアライズし、必要に応じてファイルから他の値をフェッチし、必要に応じて変更/追加を保存する方法を教えてください。何でもお勧めします。

パート 2 - メモリに読み込まれたデータをサード パーティのアプリから保護する最善の方法。

4

1 に答える 1

0

私が理解できるように、コメントと反対票に基づいて、このコミュニティは「非常に単純な」質問 (私の前の質問のようなもの) のみを歓迎し、建設的で複雑な質問は歓迎しません. だから私は間違いなく、より難易度に優しいコミュニティに移行しています.

将来同じ問題を探している可能性のあるもののために、私の問題に対する2つの解決策(私が考えたもの)を残します。

1)すべてのデータをチャンクに分割し、この目的のために特別に作成されたカスタムライターを使用して、プレーンテキスト/バイナリファイルに書き込み/読み取りを行い、タプルを境界線の境界と別の場所に書き込み、それらのすべての値をそれぞれのファイルの他の部分に書き込みますタプルごとに保存された位置。複雑になりますが、それが私が思いつくことができる最も近いものです。

2)最初のものが新しい値の追加とチャンクの位置の移動で複雑になりすぎる場合は、各文字列を個別に暗号化し、シリアル化されたデータ全体をファイルに暗号化して、ロードできるようにし、必要に応じて復号化します必要な文字列。

メモリ内の文字列については、暗号化することもできます。

誰かがより良い解決策を投稿する場合は、代わりにそれを受け入れます(明日チェックします。それまで何も投稿されない場合は、もうチェックしないと思いますので、モデレーターはこれよりも良い答えを自由に受け入れる必要があります)。他のアイデアを思い付くかもしれませんが、この回答を更新するつもりはありません。

編集:数日間は私の答えを受け入れることさえできないので、そのままにしておきます。

于 2015-04-29T02:14:05.917 に答える