作为用户登录AC / C ++基于CGI的Web应用程序只要将在服务器上创建一个临时文本文件,当用户注销该文本文件将被删除。 我要加密该文本文件,并在文件的内容。 该文件将包含类似的用户名和密码信息。
做这个的最好方式是什么?
编辑:我看到正在建议库。 我的问题是我无法用任何东西,但标准C ++库。
作为用户登录AC / C ++基于CGI的Web应用程序只要将在服务器上创建一个临时文本文件,当用户注销该文本文件将被删除。 我要加密该文本文件,并在文件的内容。 该文件将包含类似的用户名和密码信息。
做这个的最好方式是什么?
编辑:我看到正在建议库。 我的问题是我无法用任何东西,但标准C ++库。
使用众所周知的库如OpenSSL,并按照众所周知的例子 ,并从平台的具体解决方案望而却步。
我想你可能要对这个错误的方式。 如果安全,真正的安全,是我们的目标,那么你会不会希望存储,即使在它的加密形式的密码(因为它可以当钥匙被盗,被解密的其他人说的)。
你应该做的是存储密码的哈希值(用适当的盐)。 这意味着没有人(甚至没有网站管理员)可以确定一个用户的密码。 他们可以只接受一个密码,看看它是否是正确的或不通过散列以相同的盐输入(你不能扭转哈希)。
而且,这种情况使其本身很好的数据库,您使用的呢?
与谷歌盐密码哈希 ,你可以从真正的安全专家了解它(我不是一个)。
目前被认为是“安全”的加密标准AES是(又称Rijndael算法)。 你可以找到一个C ++实现CodeProject上和其他许多地方。
请注意,使用AES或其他任何对称加密标准时,必须存储您的应用程序内的加密/解密密钥。 如果有人发现了钥匙,他可以解密,你这个密钥加密的所有文件。
如果您的应用程序将在Windows下运行,你也可以使用DPAPI来存储加密的信息。
修订答案 。
你想代码进行加密和解密,可以与你的C ++代码中使用的文件。
这是绝对不正确的编写自己的代码( 像这样 )。
但是,你说,你不能使用标准库。
标准(和,也许开源)库可能是最正确的做法在你的应用程序中实现加密。 如果您选择这样做,它留给你只有两个选择,
我仍然坚持捡了一个标准库或这样的开源代码集成到我的应用程序。 请解释什么阻止你这样做。
旧 :出于某种原因,我想到了一个PHP代码被要求......我的错误。
本文给出了使用隐窝一个PHP加密对称程序实例存储密码的文本文件。
可能相关的问题#1