【发布时间】:2014-09-29 15:25:19
【问题描述】:
我需要使用我的 VC++ MFC 应用程序将文本信息保存在一个文件中,以便它是只读的。 到目前为止,我已经考虑了两种选择,但我对任何一种都不满意
1) 我可以将文件保存为 pdf。但是我看过的几个 pdf 库似乎都有一个陡峭的学习曲线。
2) 将文件压缩到存档中,甚至密码保护它。但是,这仍然不能使它成为只读的。对于压缩,我发现了这个很棒的库 - http://www.codeproject.com/Articles/7530/Zip-Utils-clean-elegant-simple-C-Win
你能不能给我一个更好的方法。
FWIW,我使用的是 Visual Studio 2013,所以我可以使用 C++11。另外,我将 Boost 链接到我的代码中。
【问题讨论】:
-
如果有足够的动力,甚至可以修改 PDF 文件。我认为您不应该以阻止其他人编辑您的文件为目标——考虑改为对其进行数字签名,这样您就可以检测到此类修改并做出适当的反应。
-
@FrédéricHamidi,这是一个很好的建议。你能建议我用 C++ 做一个简单的方法吗?我熟悉一般的想法,因为我知道 Git 使用类似的东西来创建哈希
-
Stack Overflow 上有很多问题需要处理。快速搜索发现Digital signature with CryptVerifySignature,这可能适合您作为起点。
-
很可能您正在尝试做完全错误的事情。 “只读”在不同的上下文中意味着不同的东西。为什么你认为你需要一个只读文本文件? PDF在这里毫无意义。任何用户都可以创建一个全新的文件并替换您的,而不是尝试更改您的 PDF。受密码保护的文件也没有任何意义。密码需要隐藏在某个地方。如果您可以隐藏密码,则可以隐藏原始文件,无需加密。此外,加密文件不可读,您需要不可写。
-
@n.m.,我正在存储信息以备后用,如果同时修改会很头疼。