带明文的 HTTPS / HTTPS 和自定义加密功能?

HTTPS with plaintext / HTTPS and Custom encryption functions?

这个问题更多的是关于网络架构而不是它背后的实际代码。

我昨天发布了一个关于如何解决我遇到的关于 js 加密和解密的问题的问题。 我的整个系统现在可以工作了,但是我想我刚刚重建了 https。

在我当前的应用程序中,客户端收到一个 public 密钥来加密数据。该数据在服务器上使用私钥解密,我了解到这正是 https 的工作方式。我打算完全放弃我的加密功能,但我认为它们实际上可能有用。

这是因为我认为我可能有一台服务器用于处理请求,另一台服务器用于数据库交互。所以我会在明文密码到达请求服务器之前对其进行加密(然后在到达数据库服务器后对其进行解密)。这是因为密码被知道的地方越少越好(据我所知)。

不仅如此,即使密码已加密,我仍然觉得以明文形式向服务器发送密码是不安全的。

可能有一个我丢失的密码发送标准,或者我不明白的关于 https 的一些东西,但实际上我的问题是:

我应该有 https 和我的加密系统吗? 或者只是 https 并以明文形式发送密码?

当您通过 HTTPs 发送密码时,您并不是以明文形式发送密码,但您不应将其存储在服务器上(或将其传递给其他服务器)。为了防止密码泄露,你应该做的是加盐和散列,然后将散列和加盐存储在数据库中,你可以在 wikipedia.

上阅读更多相关信息

另一方面,虽然从头开始构建软件是一种很好的做法,但审查其他实现也很重要,因此您可以复制已知开源安全实现的实现细节,例如 devise .