问题标签 [attr-encrypted]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
757 浏览

sql - 在 attr_encrypted 列上的 rails 中查询

我有一个 ruby​​ on rails 应用程序,我正在使用attr_encryptedgem 来加密一些用户信息。它有盐和 IV,所以它是 2 路加密的。gem 拦截动态find_by以帮助查询,但这对于我的情况来说还不够,因为我关心结果的数量。

有没有办法查询表以返回与给定匹配的所有结果secret

这是示例。我有一张users桌子,它有一个加密的secret属性。因此,该表具有encrypted_secretencrypted_secret_ivencrypted_secret_salt。如果用户给出了“abd123”的秘密,我如何查询表以查看有多少其他人也使用“abc123”作为他们的秘密?

0 投票
2 回答
1505 浏览

ruby-on-rails - attr_encrypted and devise,用用户密码加密用户数据

我正在使用attr_encrypted gem,并且还在我的环境中安装了设计。

我得到了一个由设计处理的用户模型,数据库列是: encrypted_pa​​ssword

用户可以保存客户端,我想用用户密码加密客户端名称和年龄。

我的client.rb文件如下所示: 此处数据已成功加密。

但我想用 Users.password 加密数据。像这样:

current_user 是 Devise 辅助方法,但由于这是来自会话,我无法在模型中访问它。基本上我想用用户密码加密所有客户端的东西。 但是,如果我使用 encrypted_pa​​ssword 执行此操作,那么我已经获得了解密整个字段的密码。我想为我的用户提供安全性,但我不想知道或无法查看他们的数据。那么唯一的方法是使用预先散列的设计用户密码加密所有数据?

编辑:

user.encrypted_pa​​ssword 已经被散列并且每当我访问数据库时 - 我可以使用它来解密所有数据吗?

所以我应该请求用户密码->像设计一样对其进行哈希处理-将其与 users.encrypted_pa​​ssword 进行比较?

我在某处有逻辑错误吗?

你会如何解决这个问题?

0 投票
1 回答
783 浏览

ruby-on-rails - mongoid:如何存储加密的 BSON::Binary 字段?

我开始在我的应用程序中使用 mongodb,现在我正在寻找一种简单的方法来加密一些敏感的二进制数据并将其存储在 mongodb 中。当我为 MySql DB 执行此操作时,我使用attr_encrypted,但我想对于 mongoid,我需要一些其他 gem 或方法来执行此操作,尤其是使用非字符串字段 (BSON::Binary )。

有什么建议么?

0 投票
1 回答
1228 浏览

ruby-on-rails - Rails 2.3 应用程序中未定义的方法 attr_encrypted

我正在维护一个 Rails 2.3 应用程序(迁移到 Rails 4 破坏了太多东西),并尝试加密/解密密码而不是将其以纯文本形式保存在数据库中。

按照 attr_encrypted gem 的说明,我添加了

到我的 Gemfile,运行 bundle install - 一切都很开心。

然后,按照说明,我将新字段 encrypted_pa​​ssword 迁移到表中,并在 app/models/serverobj.rb 中放入一行:

但是当我在那里浏览时,我得到一个这样的堆栈跟踪:

serverobj.rb,第 17 行是:

environment.rb,第 70 行是:

啊哈!我说过,attr_encrypted gem 一定不能在 load_paths 中。所以我在 中找到了 attr_encrypted gem /var/lib/gems/1.8/gems/,并将其添加config.load_pathsenvironment.rb.

但我仍然得到“未定义的方法 attr_encrypted”。

我已经没有东西可以尝试了。有任何想法吗?

0 投票
2 回答
2984 浏览

ruby-on-rails - 使用 attr_encrypted 加密和存储 API 令牌,但如何解密才能使用

构建一个应用程序,根据需要从商家的帐户中提取数据。

我已经设置了我的模型,安装了 attr_encrypted gem,并且所有内容都以加密的形式正确存储。

我创建了一个获取令牌并将其发送到 API 的方法,但我需要发送解密版本。令牌是用户特定的,所以我不知道它是什么..

如何发送令牌的解密版本?

在我的控制台中,我尝试过..

并且返回加密版本很好..

但如果我尝试:

控制台显示 ArgumentError: must specify a :key

我已将其存储为环境变量..

所以我想我会通过这个但是如何?

我的模型中有这个:

来自评论的更新

这就是我的数据库的样子:

我试过了

它给了我一个密码错误。我正在使用 figaro 来存储环境变量.. 看起来很好..

继续来!!

我在 irb 做的是:

但是如果我按照这个

我得到:

0 投票
0 回答
490 浏览

ruby-on-rails - 在使用 attr-encrypted gem 加密属性之前执行 rails 模型验证

我的一个模型中有一个加密属性(我们称之为@model.encrypted_attribute)。在添加加密之前,我在我的模型中进行了以下验证:

我还有一个方法可以运行before_save,它会从属性中剔除所有非数字字符。但是,现在我不知道如何:

  1. 在加密和保存之前在属性上运行gsub!(/\D/, ''),或者在之后运行它并让 attr-encrypted 重新加密@model.attribute值并将其写回数据库。我可以剥离字符,但不能重新加密/保存。
  2. attribute在保存之前对未加密的值运行验证。我曾尝试在 before_block 中添加以下代码,但随后出现不同的错误(undefined method '12345678' for #<Spree::Order:0x007fae02011cd0):

    /li>

有谁知道我如何实现上述一项或两项,或者至少设置一个自定义方法在 attr_encrypted 执行其操作之前运行。

-------------编辑-------------
为搜索时遇到此问题的人留下两个以上但可以在验证加密中找到解决方案数据

0 投票
2 回答
111 浏览

ruby-on-rails - Ruby on Rails - 为什么要加密某些数据?

加密数据

刚刚完成将 attr_encrypted 添加到某些模型后,我开始认为黑客的工作可能并不难。

我在与应用程序服务器不同的服务器上有一个数据库 - 但是,如果有人设法访问数据库服务器,该人也可以访问存储密钥的应用程序服务器(也许这个假设是不正确的) 因为它们具有相同类型的安全措施。

问题 

Rails 代码以可读的文本格式存储在服务器上,因此可以访问密钥。当然,如果有人确实掌握了数据库,并且掌握了这些密钥,那么整个数据加密就变得无关紧要,因为它只是(稍微)延长了黑客解密信息的时间。

如果是这样,是否可以采取进一步的安全措施,或者我完全错过了加密的概念?

我查看了 attr_encrypted gem 以及相关的自述文件和问题,但找不到任何有用的东西。

0 投票
2 回答
1488 浏览

ruby-on-rails - Raisl 4 - attr_encrypted:如何通过选择加密值来解密值

我们正在加密表/模型中的值 - RegisteredDomain,使用下面的 attr_encrypted

值也会被加密并存储到 db 中。下面的代码将值保存到 db。

问题在于使用以下选择解密值。我们在这里得到加密值,谁能告诉如何在列表中获取解密值。

0 投票
2 回答
129 浏览

ruby-on-rails - 将生产数据库中的旧值更新为新值

我正在使用attr_encryptedgem 添加加密。基本上我所要做的就是添加 gem,并encrypted_column在添加行之前重命名我的列以具有前缀:

到我的模型。现在一切正常,但是我正准备将其推送到生产环境中,并且会遇到一些问题,因为那里的值没有加密 - 有没有我可以在我的 rails c 中运行的命令来循环它们并加密他们?

0 投票
1 回答
144 浏览

ruby-on-rails - Algolia 搜索加密数据

目前,我的数据库有我发送给 Algolia 的加密数据。我需要搜索此加密数据,但如果索引为“John”并且我搜索“Joh”,它们根本不相似,因此结果为 0。

任何想法如何解决这个问题?我目前正在运行 rails 和 attr_encrypted