我在Borland的Delphi编写具有一个dBASE数据库文件的应用程序7.使用加密文件安全
注:我认为这个问题是文件的安全性相关的,你可以忘记的dBASE东西(考虑它作为一个TXT文件)在这个问题。
只能由应用程序访问数据库。然后它必须被加密。不幸的是,dBASE不支持任何密码机制,我必须自己加密文件(并且我也必须使用dBASE)
您建议如何保护数据库文件?
简单的一种是:
- 加密数据库文件和将它放在应用程序的EXE文件的旁边。
- 当应用程序运行时,它应该解密文件(使用硬编码密码)并将结果复制到一个临时文件,该文件有
DeleteOnClose
和NoSharingPermission
标志。 - 关闭时,应用程序应该加密临时dBASE文件并用新文件替换旧的加密文件。
我认为这是一个公平的安全方法。但它有两个大问题:
- 使用未删除的工具,用户可以恢复和访问已删除的临时文件。
- 更糟:应用程序运行时,如果系统突然重启,
DeleteOnClose
标志失败,临时文件保留在硬盘上,用户可以访问它。
是否有解决方案,至少,第二部分?
有没有其他解决方案?
长镜头:你能创建一个RAM驱动器并将解密的数据文件放在那里吗? – 2010-01-10 14:26:29
只要您对密码进行了硬编码,根本就没有安全的解决方案。你将不得不让你的用户选择密码,那么你就不必将它存储在任何地方。 – Leo 2010-01-10 14:34:04
@Mef:我不想寻求一个非常强大的解决方案。密码将由硬编码字符串动态生成,因此找到正确的密码并不容易。 – Isaac 2010-01-10 14:55:22