2017-09-27 64 views
0

我需要将一些日期标记的数据存储在JSON文件中。它是一个传感器输出。每天使用附加数据更新相同的JSON文件。现在,是否可以对已有的数据进行一些写保护,以确保只有新的行可以添加到文档中,并且不会发生手动篡改?是否可以写保护JSON文件的旧数据并只启用追加?

我怀疑每次更新后创建校验和可能会有所帮助,但我不知道如何实现它?我的意思是如果JSON文件的某些部分是可编辑的,那么可能的校验和也是可编辑的。

其他历史保护方式?

+0

你想*防止*篡改或*检测*它? – Alfe

回答

0

写保护通常只存在于完整文件中。所以你可以撤消对该文件的写入权限,但随后也不可能追加。

为了确保没有发生篡改,标准的方式是加密符号的数据。原则上,您可以这样做:

  • 取出文件的内容。
  • 向此字符串添加密钥(任意字符串或随机字符将执行,越长越好)。
  • 创建加密校验和(SHA256散列或类似)。
  • 将此散列追加到文件。 (前后的换行符。)

您可以在每次向文件追加内容时再次执行此操作。因为除了你以外,没有人知道你的密钥,除了你以外,没有人能够在哈希码上面产生正确的哈希码。

这不会防止篡改,但它会是可检测

对于纯文本文件,使用shell工具如sha256sum可以相对容易地完成此操作。但是你在文件中有一个JSON结构。这是一个复杂的情况,因为文件中的位置与数据的年龄不再相关(与仅附加到的文本文件不同)。

要仍然实现你想要的,你需要有关于数据的年龄信息。你有这个吗?如果您提供的JSON结构为@Rohit所要求的,我们可能会提供更详细的建议。

相关问题