c ++解析文件并读取二进制文件

时间:2011-07-22 20:15:52

标签: c++ parsing binary stdio

我想保存电子邮件帐户和密码,我之前会使用算法加密。他们需要被保存并作为二进制文件读取,具有fwite和fread。我想要的是,能够知道它是通行证还是电子邮件帐户,将其保存在< e> < e>和<你> <你>

例如:

<e> !"§(!"$)Asdn12§(!"§UASD <e>
<u> !"§()!="§ksd!"§KM!"§lkm12 <u>
<e> !"§KMK!M"§asd9i1ikm23ß0 <e>
<u> l,1ö2l3!"§)IQASD=K!"E <u>

你如何建议我应该将文件作为二进制文件读取,但也能够解析它。

这些电子邮件和通行证由另一个执行某些任务的编程阅读。

2 个答案:

答案 0 :(得分:1)

如果用户名和密码总是配对,我建议您在每个用户名之前和每个密码之前存储长度(以字节数表示)。这样你就可以读取长度(例如4字节整数)并知道下一个用户名/密码记录的长度。然后,您可以重复此操作,而无需担心搜索用户名或密码中可能出现的标记。

答案 1 :(得分:0)

你做错了。编写自己的加密是一般的禁忌。

如果您需要保存用户名和密码以进行身份​​验证或登录服务,我建议您正常保存它,但依靠操作系统的文件权限来保证其安全(这是标准的Unix操作,就好像操作系统受到了损害一样)无论如何都输了。)

如果您确实需要可公开读取但加密的密码,请使用可自由使用的加密库并将解密密钥放入源代码(和编译的二进制文件)中。这是尽可能安全的,因为攻击者无论如何都可以在解密之后读取内存。

我强烈建议您考虑为什么需要加密,以及您试图隐藏信息的人。