在c++中创建不可更改报表文件的最佳实践
Best practice for creating an unalterable report file in c++
我目前正在开发一个windows应用程序,用于测试铁路设备以查找任何默认值。
Utility A => OK
Utility B => NOK
...
此应用程序将检查给定的设备并生成报告。这份报告只需要写一次,不允许再修改,因为这个文件可以作为设备的工作证明。
我的第一个想法是使用pdf文件(haru lib看起来很棒),但pdf也可以修改。
我告诉自己,我可以混淆报告,并在我的应用程序中实现一个自制的阅读器,但无论我以何种方式存储它,文件总是可能被访问和修改的,对吗?
所以我没主意了。
如果我的方法和我的问题看起来很幼稚,对不起,但这是一份实习工作。
谢谢你的帮助。
编辑:我也可以在生成文件后添加校验和,并保留"校验和记录文件",并实现校验和比较工具进行验证?我想过了
我相信你的问题的答案是使用任何格式,并使用任何人都可以验证的数字签名,例如,创建一个gnupg,让需要检查您的文档的人签名该密钥,将其上传到密钥服务器之一,并使用它来签名文档。您可以发布文档,并提供指向您的公钥的链接以供验证;对于关键情况,验证者必须信任您的签名(即信任签署您密钥的人)。
人们的生命取决于火车检查的状态。因此,我很难相信有人希望您只使用免费的组件来解决这个问题。
Adobe支持强大的数字签名模型。如果您使用他们的技术基础,您可以创建经过数字签名的PDF文件,因此可以防止篡改,因为消费者可以检查签名。
你可以,正如其他人指出的那样,使用GNUpg,或者OpenSSL,来实现你自己的签名方案,但是铁路监管机构不太可能弄清楚如何使用它。
我会将报告存储在加密/受保护的数据存储中。当用户访问报告(请求副本,原始报告当然总是在数据库中,不能修改)时,它包含文本"report# XXXXX"。如果您想要验证报表,请使用报表ID从系统中检索一个新的副本。
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 创建进行生产构建并创建调试信息的C++生成文件的最佳方法?
- 将位字符串转储到二进制文件的最佳方法是什么
- 比较文件中的最佳平均成绩并打印学生的姓名
- 在指向现有内存地址的 hpp 文件中声明成员函数的最佳方法
- 为Catch2中的外部文本文件指定路径的最佳方式
- 检查特定目录中是否存在与文件匹配的 abc* 的最佳方法
- 复制文件的最佳方式是什么,以便我可以在复制过程中轻松取消复制?
- 获取 exe 文件夹路径的最佳方法?
- 从包含 IP 标头片段的二进制文件中读取结构的最佳方法是什么
- 避免遗漏包含相同文件的最佳方法是什么?
- 如何为多个文件处理选择最佳的I/O策略
- 比较两个文件中的两个中间人的最佳方法.C++
- 在Visual C ++中与Stockfish(外部可执行文件)通信的最佳方式
- 从CSV文件中提取每个条目字段的最佳方法是什么
- 计算文本文件中行数的最佳条件是什么
- 从.txt文件中汲取信息的最佳方法
- 在C 中将多个子类纳入文件中的最佳方法是什么?
- 读取四个数据文件并使用函数将它们放入结构数组的最佳方法是什么
- 头文件和cpp或只是cpp文件-最佳实践