【问题标题】:Encryption in MeteorMeteor 中的加密
【发布时间】:2015-02-22 01:25:26
【问题描述】:

我有用户登录表单。它有大约 10 个输入。我想保存该用户,随机生成密码和哈希并加盐并保存。如何做到这一点?我找不到在流星中使用 Crypto.js 的任何好的教程。我总是偶然发现帐户密码包。

【问题讨论】:

标签: javascript encryption meteor cryptojs


【解决方案1】:

accounts-password 实际上会为您解决这个问题。我希望实现细节的文档更好,但你可以看到一个概述here

通过检查哈希来验证密码,因此只有从客户端传递到服务器的哈希版本,然后通过 bcrypt 运行。

客户端:密码-->网络:sha256(密码)-->服务器:bcrypt(sha256(密码))

这个实现的好处是:(a) 服务器永远不会看到或存储与密码等效的数据,(b) 只需安装软件包即可为您完成所有工作。

有关详细信息,另请参阅this hackpad

【讨论】:

  • 那么客户端对密码进行哈希处理,服务器对哈希进行加密并存储?这意味着用户的明文密码永远不会发送到任何地方,但是中间的人仍然可以从流量(如果不是 SSL 连接)中获取(散列)密码,从而窃取帐户。或者我错过了什么?
  • 据我了解,您评论中的所有内容都是正确的。 SSL 是实现安全性所必需的,否则您将容易受到 MITM 攻击。在客户端上散列密码并不能保证任何安全性,但是,它确实让您声称您的数据库中没有与密码等效的数据。
  • 让我补充一下,传输散列密码而不是纯文本密码可能不会阻止攻击者侵入特定 Web 应用程序的帐户,但可能会很好地阻止攻击者闯入同一用户的其他应用程序的其他帐户。
猜你喜欢
  • 2015-01-06
  • 2017-05-05
  • 2022-01-03
  • 2015-01-04
  • 2015-10-08
  • 1970-01-01
  • 2016-07-03
  • 2013-08-15
相关资源
最近更新 更多