c++ - 密码的客户端/服务器加密

标签 c++ encryption cryptography client-server public-key

我正在用 C++ 构建一个客户端/服务器应用程序,需要每个客户端提供一个密码。显然我希望它在传输过程中是安全的,所以我一直在研究一种加密密码的方法;这样只有服务器应用程序才能再次解密。

我遇到的问题不一定是让函数正常工作,而是理解我需要做什么才能将其关联到代码中。我正在尝试理解并阅读了 MSDN(感觉很喜欢),但我仍然只是在学习,所以真的需要一些关于我的实现的清晰准确的指导。

这听起来对吗?

  1. 我在服务器和客户端上都获得了 CSP 的上下文。
  2. 我在服务器上生成一个 key ,或者加载一个(随便)。

然后我

从服务器导出一个公钥发送给客户端,客户端导入 key 然后加密密码返回,这样只有服务器才能再次解密。 (我尝试时失败)。

或者,那我呢

导出 session key ,或使用交换 key 对加密的交换 key 对(单一公开)?

哦,我迷路了,我什至无法解释清楚。

请帮助我理解这个...

最佳答案

这实际上取决于您希望基于哪种身份验证解决方案。选项多种多样。

例如,您可以依赖底层操作系统身份验证。您根本不需要管理密码。但这需要与运行应用程序的域进行更紧密的集成。

另一种选择是使用 HTTPS 和简单例份验证。它基本上使用 SSL 来加密通信,然后发送用户名/密码对。非常简单,所有网络服务器都支持。如果您不想依赖现有的 Web 服务器,例如正在安装的 IIS,您可能很容易找到可以为您处理此问题的 C++ 代码(在 StackOverflow 中搜索此类问题)。

关于c++ - 密码的客户端/服务器加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5906341/

相关文章:

c++ - 错误 : LNK1120: 5 unresolved externals

algorithm - 需要存储什么状态以允许可恢复的哈希计算?

security - 您如何加密用户数据以便只有他们才能解密?

javascript - 如何检查 AJAX 请求的真实性

java - 我应该使用 KeyGenerator 还是 SecretKeyFactory?

c++ - OpenCv2.2 C++ filter2D

c++ - 要学习STL,关于c++应该了解什么?

c++ - C++ 函数模板特化是如何工作的?

encryption - 加密指定的备用数据流 - NTFS、XP

java - 更改 symmetry.key.master.password 在 6.0 中不起作用