【发布时间】:2019-01-27 21:18:09
【问题描述】:
我想将文件更改为永久只读,并尝试了creating-read-only-pdf-file-using-python 和change-file-to-read-only-mode-in-python 提供的解决方案。
但是,在这两种情况下,仍然可以编辑文件并手动将其更改回只读文件。
有没有办法防止这种情况发生,这样没有人可以编辑文件的属性或内容?
我考虑过加密它,即使用 SHA256 和随机创建的密钥,但这会使文件不可读。
【问题讨论】:
-
-
在通用计算机中不可能。如果一个人可以在他们控制的设备上打开文件,他们就可以找到一种方法来做任何他们想做的事情。例外情况仅适用于预安装和由您控制且没有任何外部连接(Internet/USB 或其他)的设备上可用的文件,并且不会不能供人带走和拆卸/破解。
-
如何在应用程序代码中放置一个 HMAC 密钥,然后在文件上计算一个 MAC 身份验证标签?你可以例如将标签放在文件的末尾,元数据中,甚至文件名中的十六进制编码中。这样人们可能仍然会更改文件,但您的应用程序会检测到它已被更改并中止(即文件将被篡改)。当然,如果人们可以读取或更改 您的 python 脚本中的键,您仍然会遇到麻烦。
-
作为非加密解决方案:以不同的用户身份运行您的应用程序,并使文件只能由该用户(或用户所在的组)编辑。我猜在 *nix 上,文件和二进制文件上的
chown。 -
非加密解决方案在我的情况下不起作用,因为任何人都不允许更改文件。 HMAC 密钥可能会更好,我会研究一下。如果我将脚本转换为 .exe 数据,那不会阻止任何人更改脚本中的密钥吗?
标签: python encryption