【问题标题】:Encrypting string in C++在 C++ 中加密字符串
【发布时间】:2016-01-14 21:33:08
【问题描述】:

我有一个基于客户端服务器的应用程序,用户在客户端显示登录屏幕。然后它将凭据传递给进行身份验证的服务器。客户端-服务器通信通过使用 https 协议(支持 TLS1.2)在服务器上托管的 Web 服务进行。客户端将用户名和密码传递给 Web 服务。尽管我正在使用基于 https 的通信,但我正在考虑加密密码。我的问题是:

  1. 是否值得对密码进行二级加密?
  2. 是否有任何好的做法可以遵循(例如使用哪种算法等)?
  3. 它是一个用 C++ 编写的基于 MFC 的应用程序。 windows 是否提供任何方法来做到这一点?

【问题讨论】:

  • 我认为您应该在Information Security Stack Exchange 提出前两个问题。关于问题 3,我不能推荐任何资源,但关于密码学的黄金法则是:不要推出自己的解决方案,因为它们肯定容易受到一些你永远不会的奇怪攻击想想除非你是真正的专家。取而代之的是,使用其他人制作的一些被认为可靠的库。

标签: c++ encryption


【解决方案1】:

我同意你应该问前两个问题Information Security Stack Exchange

是的,windows 提供了一些加密方法。有一整个库叫Microsoft CNG

不要试图使用他们过时的“密码学 API” - CAPI。

不要尝试自己编写加密代码。

【讨论】:

  • 我知道“仅链接”的答案很糟糕 - 但我认为解释整个 CNG 对于 SO 来说有点长,即使 MS 移动他们的帮助页面,搜索“Microsoft CNG”也会找到它。
【解决方案2】:

如果您使用 HTTPS/TLS1.2 并固定证书,则没有理由进一步加密数据。

https对除了URL地址之外的整个传输进行加密,因此查询字符串等都被加密了。

加密密码只是将问题转移到客户端和服务器之间如何共享加密密钥?

【讨论】:

    猜你喜欢
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    相关资源
    最近更新 更多