【问题标题】:How to encrypt data before sending it into the db?如何在将数据发送到数据库之前对其进行加密?
【发布时间】:2015-08-21 02:22:14
【问题描述】:

我正在使用设计进行身份验证。 我想在将用户输入的所有数据发送到数据库之前对其进行加密。

这可能吗?

我找到了这个gem,但我不确定如何解决这个问题。

基本上没有人可以访问数据库应该能够读取数据,只有用户密码。

为了更清楚:

用户在注册时创建了一个密码,我不知道该密码,因为它是加密的,用户有一些数据也是加密的,没有人可以访问或读取数据。

我是不是太有野心了?​​

【问题讨论】:

  • Tekina 在这点上是对的。出于多种原因,您不应该让您的用户访问数据库,其中一些原因在该答案中提到。你应该这样做。获取他们的用户名和密码并与盐结合。以纯文本形式存储 salt,他们的私人数据由 your 密钥加密,他们的登录凭据经过哈希处理。这样一来,在服务器受损的情况下,没有人可以识别用户或密码。您永远不会比较他们的纯文本凭据。将哈希与哈希进行比较。然后,如果他们的哈希匹配,您将成为看门人并提供他们的私人信息。

标签: ruby-on-rails encryption


【解决方案1】:

我不认为使用用户密码来加密数据是最好的方法,因为您必须不断提示用户输入她的密码,这将是非常糟糕的用户体验。如果你打算以某种方式持久化它,你就是将它暴露在其他类型的攻击之下。此外,密码通常使用单向哈希进行加密,因此尝试使用用户密码加密/解密任何内容时祝你好运。

您最好的方法必须是保持安全并限制对数据库本身的访问。或者,您可以尝试像 Strongbox 这样的 gem 来加密敏感数据。

【讨论】:

  • 固体,会试试那个宝石。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-06
相关资源
最近更新 更多