0

単純なデータベースを処理するプログラムを作成する必要があります。私の目標は、メモリ内のすべてのデータを .txt に単純に書き込み、プログラムの開始時にそれをすべて読み込むことです。ユーザーがプログラムの外部で txt ファイルを編集できないようにしたいと考えています。

考慮すべきいくつかのこと: - このソリューションを移植可能にしたい (マルチプラットフォームではなく、Windows だけですが、手動で設定する必要があるセキュリティ設定や追加のソフトウェアに依存するセキュリティ設定は必要ありません) - 防止方法はありません。極端にする必要があります。txtを開いて自由に編集するなど、些細なことではない必要があります。

現在の計画は次のとおりです。 - プログラムが読み取り/書き込み時に組み込みの暗号を使用してデータをマスクし、キーを維持しながら簡単に編集することを困難にしたい。- 暗号鍵と、もちろんデータが正当であることの両方を確認するために、読み取り時にデータ検証を行います。

私の問題: - ユーザーは txt を開いて、値を別の正当なデータに変更できます

私が望むもの: - Windows API がサポートするロック機能のようないくつかのミューテックスは、ビジュアル C++ 再配布可能ファイルを持っている限り、ユーザーが実行できるポータブルな方法 (Windows プラットフォーム内) でコーディングできます。(でも、どんな助けも借ります)

読んでくれてありがとう、私はいくつかの入力を見たいと思っています:)

編集:

zip はデフォルトで Windows プラットフォームでサポートされているため、.zip の作成時に暗号化してキーを使用してプログラムでアクセスできる .zip コンテナーに書き込む方法はありますか? それが可能であれば、これは理想的な解決策になると思います

4

1 に答える 1

2

これが可能かどうかもわからないので、.txt ファイルに保存するデータを暗号化することをお勧めします。

以下は単純な XOR 暗号化アルゴリズムです。データを復号化する場合は、暗号化された文字列を使用してメソッドを再度実行するだけです。

std::string crypt(std::string str, char key) { // If you want to, you can apply proper const-ness
    std::string result = str; // Create a result string
    for (int i = 0; i < result.size(); i++) result[i] = str[i] ^ key; // For every character in the string XOR it with the key
    return result; // Return the result
}

これがお役に立てば幸いです。

于 2015-06-03T00:18:48.863 に答える