1

2 つの書き込み関数を使用するテキスト ファイルがあります: 1) 通常の書き込み、2) 安全な書き込み。

ファイルからデータを読み取りたい場合、「通常書き込み」機能を使用して書き込まれたデータのみを読み取ることができ、「セキュア書き込み」機能を使用して書き込まれたデータを読み取ることはできないはずです。

私の考えは、キーをフラグとして使用して辞書を使用し、値が通常の書き込みまたは安全な書き込みを使用して書き込まれたかどうかを確認することでした。

Pythonでこれを行うにはどうすればよいですか?

4

1 に答える 1

1

データのセキュリティをどの程度確保するかがすべてです。最善の解決策は、暗号化、複数のファイル、またはその両方を使用することです。

ファイル内のデータが正常か安全かを示すためにプログラムで使用できるフラグが必要なだけの場合は、いくつかの方法があります。

  • 書き込むたびにヘッダーを追加できます。
  • 各行をセキュア レベルを示すフラグで開始し、正しいフラグを持つ行のみを読み取ることができます。
  • ファイルの安全な部分とそうでない部分を示すファイル全体のヘッダーを持つことができます。

これは、最初のオプションを使用して実装する方法です。

normal_data = "this is normal data, nothing special"
secure_data = "this is my special secret data!"

def write_to_file(data, secure=False):
    with open("path/to/file", "w") as writer:
        writer.write("[Secure Flag = %s]\n%s\n[Segment Splitter]\n" % (secure, data))

write_to_file(normal_data)
write_to_file(secure_data, True) 

def read_from_file(secure=False):
    results = ""
    with open("path/to/file", "r") as reader:
        segments = reader.read().split("\n[Segment Splitter]\n")
    for segment in segments:
        if "[Secure Flag = %s]" % secure in segment.split("\n", 1)[0]:
            results += segment.split("\n", 1)[0]
    return results

new_normal_data = read_from_file()
new_secure_data = read_from_file(True)

これはうまくいくはずです。しかし、データを保護する最善の方法ではありません。

于 2012-10-16T13:06:18.943 に答える