2017-09-27 47 views
0

我需要將一些日期標記的數據存儲在JSON文件中。它是一個傳感器輸出。每天使用附加數據更新相同的JSON文件。現在,是否可以對已有的數據進行一些寫保護,以確保只有新的行可以添加到文檔中,並且不會發生手動篡改?是否可以寫保護JSON文件的舊數據並只啓用追加?

我懷疑每次更新後創建校驗和可能會有所幫助,但我不知道如何實現它?我的意思是如果JSON文件的某些部分是可編輯的,那麼可能的校驗和也是可編輯的。

其他歷史保護方式?

+0

你想*防止*篡改或*檢測*它? – Alfe

回答

0

寫保護通常只存在於完整文件中。所以你可以撤消對該文件的寫入權限,但隨後也不可能追加。

爲了確保沒有發生篡改,標準的方式是加密符號的數據。原則上,您可以這樣做:

  • 取出文件的內容。
  • 向此字符串添加密鑰(任意字符串或隨機字符將執行,越長越好)。
  • 創建加密校驗和(SHA256散列或類似)。
  • 將此散列追加到文件。 (前後的換行符。)

您可以在每次向文件追加內容時再次執行此操作。因爲除了你以外,沒有人知道你的密鑰,除了你以外,沒有人能夠在哈希碼上面產生正確的哈希碼。

這不會防止篡改,但它會是可檢測

對於純文本文件,使用shell工具如sha256sum可以相對容易地完成此操作。但是你在文件中有一個JSON結構。這是一個複雜的情況,因爲文件中的位置與數據的年齡不再相關(與僅附加到的文本文件不同)。

要仍然實現你想要的,你需要有關於數據的年齡信息。你有這個嗎?如果您提供的JSON結構爲@Rohit所要求的,我們可能會提供更詳細的建議。

相關問題