我正在使用 Borland Delphi 7 中的 dBASE 数据库文件编写应用程序。
注意:我认为这个问题与文件安全相关,您可以在这个问题中忘记 dBASE 的东西(将其视为 TXT 文件)。
数据库必须仅由应用程序访问。然后它必须被加密。不幸的是 dBASE 不支持任何密码机制,我不得不自己加密文件(而且我还必须使用 dBASE)
您建议使用什么方法来保护数据库文件?
最简单的是:
- 加密数据库文件并将其放置在应用程序 EXE 文件旁边。
- 当应用程序运行时,它应该解密文件(使用硬编码的密码)并将结果复制到具有
DeleteOnClose
和NoSharingPermission
标志的临时文件。 - 关闭时,应用程序应加密临时 dBASE 文件并用新的加密文件替换旧的加密文件。
我认为这是一种公平安全的方法。但它有两个大问题:
- 使用取消删除工具,用户可以恢复和访问已删除的临时文件。
- 更糟糕的是:当应用程序运行时,如果系统突然重新启动,
DeleteOnClose
标志失败并且临时文件保留在硬盘上,用户可以访问它。
至少第二部分有什么解决方案吗?
还有其他解决方案吗?