0

我有一个基于向导的 MFC 应用程序。该应用程序向用户询问可变数量的问题,然后将这些问题写入 INI 文件,该文件随后在用户单击完成时被加密。

到目前为止,我看到的所有 INI 文件解析器都可以读取或写入磁盘上的物理文件。我不想这样做,因为 INI 文件包含机密信息。相反,我希望 INI 文件仅基于内存,并且永远不会以未加密的形式写入磁盘。

由于该应用程序允许用户返回并更改答案,我突然想到我可以为此目的使用内存数据库,但我再次不想将任何内容写入磁盘并且不想在我的应用程序中发送数据库这是可以避免的。

我必须使用 INI 文件,因为未加密的文件将由第 3 方处理。

欢迎任何建议。

谢谢..

4

4 回答 4

3

我有一个 IniFile C++ 类,它允许您使用内存中的 Ini 文件:http: //www.lemonteam.com/downloads/inifile.h

这是一个简短的、有据可查的单个 .h 文件。示例用法:

IniFile if ( "myinifile.ini" );

if.SetString( "mykey", "myvalue" );


// Nothing gets actually written to disk until you call Flush(), Close() or the object is deleted
if.Flush();
if.Close();

您应该能够修改 Flush() 方法,以便它对保存的数据应用某种加密。

于 2009-05-24T14:09:27.940 回答
0

听起来像是内存映射文件的一个很好的应用程序,因为您可以控制何时将内存中的视图刷新回磁盘上的文件。

于 2009-05-24T14:11:13.957 回答
0

如果它从不存储到磁盘中,为什么还需要它为 ini 文件格式?

为什么不将它作为数据结构保存在内存中,并在需要时使用普通的 ini 文件方法将其写入磁盘。

于 2009-05-24T14:12:36.123 回答
0

如果您不想保存到文件中,那么使用 INI 文件有什么意义呢?INI API 基本上是一个基于磁盘文件的属性包或键值对。如果你不想使用文件,我建议你使用自己的哈希或字典数据结构来存储键值parirs

于 2009-05-24T14:15:53.887 回答