【问题标题】:Best practice to encrypt and decrypt passwords between services在服务之间加密和解密密码的最佳实践
【发布时间】:2020-05-18 13:13:46
【问题描述】:

所以基本上我正在开发一个需要用户输入纯文本用户和密码的服务。

主服务器永远不需要解密密码,所以它应该用公钥加密用户密码并将其存储到数据库中。

进行网络抓取的消费服务需要纯文本形式的密码才能进行身份验证。 并使用私钥进行解密。

我想知道存储证书的最佳做法是什么,我尝试对密钥进行 base64 加密并从 env 中使用它。但有时有些东西会被破坏。并且无法解密密码。

任何关于如何处理它的建议都是有帮助的

【问题讨论】:

  • 你为什么不像其他人一样做呢? https 上的用户名/密码。
  • 它是后端服务,这些密码需要存储在数据库中,但我不喜欢将其存储为纯文本的想法
  • 抱歉,马丁,我理解这些东西有点慢。我对哪个部分在做什么事情感到困惑。如果密码来自用户,那为什么不直接在用户输入密码时使用呢?

标签: node.js encryption rsa


【解决方案1】:

不会太担心混淆密钥。只需确保其所在的服务器是安全的,并通过权限和有权访问该帐户的用户来限制对密钥的访问。如果它是一个没有登录能力的服务帐户,那就更好了。如果您需要多次重现此概念,请针对此过程的每次独特使用使用不同的密钥/证书,以在存在妥协时限制暴露。我相信会有更多好的响应...让它们叠加起来,看看哪种组合最适合您的用例。

【讨论】:

    【解决方案2】:

    最佳做法是散列密码并存储散列值。当用户登录时,对他们的输入进行哈希处理并将其值与您已经存储的哈希值进行比较。以这种方式,妥协只显示哈希值,而不是实际密码。有彩虹表可以破解哈希,但这是另一天的话题。

    【讨论】:

      猜你喜欢
      • 2010-10-21
      • 2011-09-23
      • 2012-11-26
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 2010-10-15
      • 2013-05-29
      • 2011-03-26
      相关资源
      最近更新 更多