【问题标题】:How to store user data in an encrypted form?如何以加密形式存储用户数据?
【发布时间】:2013-04-04 18:00:46
【问题描述】:

我正在制作一个需要保留用户个人资料的扩展程序,以便在用户登录时从各种服务器中提取正确的信息。

所以我找到了这个帖子:Storage of passwords in Google Chrome Extension。我不觉得它太有帮助。

我相信,如果我可以存储用户登录密码的哈希值(对于我的扩展程序来说是唯一的),我就可以使用该密码作为密钥来加密他们的所有个人信息。我担心我引用的帖子中的评论,说他们可以阅读扩展的源代码并计算出哈希值。

我的想法可行吗?如果是这样,我应该使用什么?或其他建议?

【问题讨论】:

  • 你想达到什么目的?客户端加密的任何信息对您或用户都是无用的,除非您还提供了在客户端解密它的方法,这违背了加密的目的。将其安全地存储在服务器上并使用 HTTPS 保护您的连接。
  • 你会在哪里使用这个想法?我的意思是加密。为什么它需要在客户端
  • @RobertHarvey 这是一个包含广告频道订阅的配置文件。我正在构建一个在客户端进行分析并缓存广告的原型。在现场保持加密的原因是我不需要受信任的服务器,因此信息始终由客户端控制。我想我可以接受客户是受信任的,然后接受只有合适的人才能访问它。
  • 如果我使用从 Javascript 调用的 C 库怎么办?这样一来,源就不会那么可用了……
  • 我认为我的问题的最佳解决方案是使用出现在此问题中的Use Case 1stackoverflow.com/questions/7123511/…

标签: javascript google-chrome google-chrome-extension


【解决方案1】:

这在某种程度上取决于密码的用途。例如,如果它们是银行帐户,那么可能值得一个坏人花时间查看您的 javascript 并弄清楚如何解密文件。这就是查看加密内容所需要的。

如果内容是一些不太有价值的东西的密码,你可以做这种事情。

如果内容有价值,您需要在某处的服务器上进行加密,而不是在客户端使用 javascript。这样做几乎总是需要您也存储它们,尽管可以通过在服务器上进行加密并将数据存储在客户端上。

【讨论】:

    【解决方案2】:

    您不应将个人信息或密码存储在 localStorage 中,因为任何有权访问计算机的人都可以轻松访问此信息。即使它是加密的,也可以通过检查源代码轻松解密(任何人都可以轻松查看扩展程序的源代码)。

    一种解决方案是将信息存储在服务器上,并使用第三方登录(Google、Facebook)而不是密码来验证用户身份。

    【讨论】:

      猜你喜欢
      • 2014-03-07
      • 2017-03-09
      • 2011-04-26
      • 2014-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多