问题标签 [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 回答
466 浏览

ruby-on-rails - SecureRandom.hex() 与 SecureRandom.random_bytes() 在 Rails 中使用 attr_encrypted 生成密钥

文档attr_encrypted说我必须将结果存储在key = SecureRandom.random_bytes(32)模型上。我认为将此密钥存储为 ENV 变量会更安全。我也习惯于rake secret为我的 ENV 变量运行。rake secret依靠SecureRandom.hex().

我想知道两件事:

  1. 我是否正确假设应该将加密密钥存储为 ENV 变量?
  2. 两种 SecureRandom 方法之间的密钥加密强度有什么区别吗?hex()random_bytes()
0 投票
1 回答
745 浏览

ruby-on-rails - 如何使用内容在 Rails 中?

我已将两张图片上传并加密到我的应用程序中,现在我需要在img_tag. 如何检索此字符串的内容并将其显示给用户?

0 投票
1 回答
102 浏览

ruby-on-rails - 即使未请求,选择查询也会在结果中添加 attr_encrypted 属性

我正在努力解决 Rails 5.2.4.1 应用程序的问题。配置如下:

  • 红宝石 2.6.5
  • 导轨 5.2.4.1
    • attr_encrypted 3.1.0

我有一个名为 Chicken 的模型,它有 2 个属性:name- 这是 attr_encrypted 和number- 这是一个普通的整数字段。每当我执行查询以检索除 attr_encrypted 之外的任何其他字段时,它仍会附加到结果中,并且始终是nil

Chicken.select(:number) => #<ActiveRecord::Relation [#<Chicken id: nil, number: nil, name: nil>]>

请记住,这只是一个测试应用程序,我尝试在最初遇到的实际应用程序上执行的查询更复杂。

有没有办法防止 attr_encrypted 将加密字段附加到查询结果?由于当前结果意味着我必须重写应用程序中的所有现有查询或以某种方式为这些类型的字段添加过滤器

0 投票
0 回答
119 浏览

ruby-on-rails - 使用 attr_encrypted 使用新密钥加密新数据(覆盖旧数据)

我必须编写一个脚本,用虚拟(但有效)数据替换现有数据。该脚本应仅填充已在每条记录上填充的字段。我不应该将虚拟数据放入以前不存在数据的字段中。任何人都可以帮助创建脚本吗?

我正在使用attr_encrypted,我想用新数据覆盖现有数据,使用新密钥。我怎样才能做到这一点?

我的示例代码供您参考:

License.where.not(license_number: nil).each do |number|
number.update_attribute(:license_number, Faker::Number.number(6)) 结束

尝试更新时,我收到错误我认为这是由于尝试首先尝试OpenSSL::Cipher::CipherError: bad decrypt的事实-由于密钥不同,这显然不起作用。有什么想法可以编写新数据并使用新的新密钥吗?attr_encrypteddecryptiv

0 投票
2 回答
886 浏览

ruby - attr_encrypted gem在rails 6中不起作用

我在用户模型中的 rails 4.1 中使用 attr_encrypted (1.3.3) 具有以下详细信息

将应用程序升级到 rails 6 后,attr_encrypted 撞到了使用加密器的 attr_encrypted (3.1.0) (~> 3.0.0)

在加密器 (~> 3.0.0) 中引入了新的验证

我现有密钥的哪个raises ArgumentError (key must be 32 bytes or longer)例外

如何在不破坏用户功能的情况下使用 rails 6 attr_encrypted gem?

0 投票
1 回答
202 浏览

ruby-on-rails - 必须使用 attr_encrypted 指定 iv 错误

我正在尝试将加密的 jsonb 字段添加到我在 rails 中的用户模型中。尝试读取或设置值时出现错误。

错误

用户.rb

移民

配置/初始化程序/aws.rb

宝石文件

0 投票
0 回答
35 浏览

ruby-on-rails-3 - attr_encrypted gem 有时会在数据库中保存空值

我正在运行 rails 3 版本并使用 attr_encrypted gem version '1.2.1' 。有时我看到 nil 条目被存储到列encrypted_private_key中。

下面是我的模型

下面是我如何尝试在列 encrypted_private_key 中存储值

在完成 device.save 之后,如果我执行 device.encrypted_private_key,那么有时我会得到 nil 值。这可能是什么原因?这个问题不是每次都会出现,而是有时会出现。

0 投票
1 回答
45 浏览

ruby-on-rails - 在 Rails 6 / FactoryBot 6 中,如何模拟 attr_encrypted 属性?

最近升级到 Rails 6 和 FactoryBot 6.2.0。我有这个模型

我有对应的工厂

但是现在当我去创建这个工厂的一个实例时,我得到了错误

不确定 Rails 或 FactoryBot 发生了什么变化,但在我没有定义这样的方法的情况下,这之前有效。无论如何,这似乎是一种黑客行为。有没有更优雅的方式在工厂中定义这个属性?