SaveFiles c++ 的文件类型
File Type For SaveFiles c++
使用 fstream,您建议我可以读取和写入哪种文件类型来保存文件?我正在尝试制作一个程序,用户可以在其中输入用户名和密码并将其输出到文件中。我想要一种用户编辑起来不太容易的文件类型。 (所以不是 .txt 或 .ini)
提前致谢
fstream 除了处于文本模式与纯二进制模式之外,实际上并没有 "file format" 的感觉(例如,换行符有一些细微差别)。您通常会使用某种中间库来生成或直接写入 XML 文件、JSON 文件、INI 文件等。SQLite 是一种流行的 library/format 将数据库表存储在文件中。例如,Mozilla Firefox 将其用于书签和历史记录。
您所说的是隐蔽性的安全性。通过使用某种编码,也许最终是二进制的,所以如果没有十六进制编辑器,它甚至根本无法打印,它会使事情变得模糊一些。如果您使用加密,则在解密之前无法读取,但您始终可以对程序进行逆向工程以确定 encryption/decryption 密钥和算法。
最安全的选择是根本不存储密码,而是存储密码的哈希值。这意味着即使对程序进行逆向工程,您也无法直接提取存储的密码。相反,每当用户尝试输入密码时,它都会使用相同的哈希算法进行比较并比较结果。
但这并不总是有效,因为有时您正在存储密码以提交给第三方,在这种情况下,您最终必须将存储的密码恢复为明文以传输给第三方。
我希望这能给你一些想法!
使用 fstream,您建议我可以读取和写入哪种文件类型来保存文件?我正在尝试制作一个程序,用户可以在其中输入用户名和密码并将其输出到文件中。我想要一种用户编辑起来不太容易的文件类型。 (所以不是 .txt 或 .ini)
提前致谢
fstream 除了处于文本模式与纯二进制模式之外,实际上并没有 "file format" 的感觉(例如,换行符有一些细微差别)。您通常会使用某种中间库来生成或直接写入 XML 文件、JSON 文件、INI 文件等。SQLite 是一种流行的 library/format 将数据库表存储在文件中。例如,Mozilla Firefox 将其用于书签和历史记录。
您所说的是隐蔽性的安全性。通过使用某种编码,也许最终是二进制的,所以如果没有十六进制编辑器,它甚至根本无法打印,它会使事情变得模糊一些。如果您使用加密,则在解密之前无法读取,但您始终可以对程序进行逆向工程以确定 encryption/decryption 密钥和算法。
最安全的选择是根本不存储密码,而是存储密码的哈希值。这意味着即使对程序进行逆向工程,您也无法直接提取存储的密码。相反,每当用户尝试输入密码时,它都会使用相同的哈希算法进行比较并比较结果。
但这并不总是有效,因为有时您正在存储密码以提交给第三方,在这种情况下,您最终必须将存储的密码恢复为明文以传输给第三方。
我希望这能给你一些想法!