基于C / C ++的cgi Web应用程序将在用户登录时在服务器上创建临时文本文件。文本文件将在用户注销时删除。我想加密这个文本文件以及文件的内容。该文件将包含用户名和密码等信息。
这样做的最佳方式是什么?
编辑:我看到有人建议使用库。我的问题是我不能使用标准C ++库。答案 0 :(得分:4)
使用知名的文库,例如openssl,并遵循众所周知的examples,远离平台特定的解决方案。
答案 1 :(得分:3)
我想你可能会以错误的方式解决这个问题。如果安全性,真正的安全性是目标那么你甚至不想以加密的形式存储密码(因为如果密钥被盗,它可以被解密,正如其他人所说的那样)。
您应该做的是存储密码的哈希值(使用适当的盐)。这意味着没有人(甚至站点管理员)无法确定用户的密码。他们只能通过使用相同的盐散列输入来接受密码并查看它是否正确(您不能反转哈希)。
此外,这种情况很适合数据库,你使用的是吗?
Google 使用salt进行密码哈希,您可以从真正的安全专家那里了解它(我不是其中之一)。
答案 2 :(得分:2)
目前被认为是“安全”的加密标准是AES(也称为Rijndael)。您可以在Codeproject和许多其他地方找到C ++实现。
请注意,使用AES或任何其他对称加密标准时,必须将加密/解密密钥存储在应用程序中。如果有人发现密钥,他可以解密您使用此密钥加密的所有文件。
如果您的应用程序将在Windows下运行,您也可以使用DPAPI来存储加密信息。
答案 3 :(得分:0)
修订答案 您希望代码加密和解密可与C ++代码一起使用的文件 编写自己的代码(like this one)绝对不正确。
但是,你说你不能使用标准库 标准(可能是开源)库可能是在应用程序中实现加密的最正确方法。如果您选择不这样做,它只剩下两个选项,
我仍然坚持选择标准库或将这样的开源代码集成到我的应用程序中。请解释阻止你这样做的原因。
旧:出于某种原因,我认为需要PHP代码...我的错误 本文允许a PHP encryption symmetric program example using crypt将密码存储在文本文件中。
可能与Stackoverflow相关的问题