问题标签 [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.
ruby-on-rails - gem attr_encrypted 不适用于 rails 2.3.8 + bundler?
所以,当我将这个 gem与 config.gem 方法一起使用时,它会跟踪 2 的 environment.rb 文件,一切都很好。我可以保存和读取加密属性。
但是当我使用 bundler(首选方法 =D)时,attr_encrypted 突然无法读取或写入任何加密属性到数据库。控制台/日志/网页中的任何地方都没有错误。
有任何想法吗?
ruby-on-rails - 在 attr_encrypted 使用所述虚拟属性作为加密密钥之前未设置虚拟属性
何时encryption_key
由 调用attr_encrypted
,:passphrase
尚未设置。加密密钥最终是盐的 sha1 散列;它应该是密码和盐的 sha1 哈希。
salt 在创建时生成并保存在数据库中。
如何:passphrase
在加密密钥中使用虚拟属性?
有什么建议么?
为简洁起见,我省略了一堆代码。
提前致谢!
ruby-on-rails-3 - 使用 attr_encrypted (attr_encryptor) gem 时出现 MassAssignmentSecurity 错误
对于我的 rails 3.2.3 应用程序,我使用的是 attr_encryptor,它是 attr_encrypted 的 danpal 的一个分支。我已按照此处给出的说明进行操作,但在尝试创建新Patient
记录时收到以下错误消息:
正如说明所说,我在表中添加了encrypted_#{field}
、encrypted_#{field}_salt
和encrypted_#{field}_iv
列,Patients
同时删除了未加密的对应项。
Patient
模型看起来像:
我在控制器中的create
方法如下所示:Patient
我究竟做错了什么?在此先感谢您的帮助!
ruby-on-rails - attr_encryptor 错误解密错误
我使用 danpal/attr_encryptor gem 来加密我的 ActiveRecord 模型中的某些属性。
并得到以下错误
然后我尝试在 rails 控制台中使用 encrypt_number 并在重新启动控制台时看到相同的“数字”字段值的不同值。为什么?
ruby-on-rails - Rails 加密:danpal/attr_encryptor 密钥生成
使用 attr_encrypted 的 danpal 分支。
' 字符串是否'key
生成带有新会话的新对象?由于我遇到了一个问题,我创建了一个具有加密值的实例并且它工作正常。但是,当我运行一个新的 rails 控制台会话或例如尝试通过视图访问该值时,我得到一个bad decrypt
错误。我猜这与使用不正确的密钥有关?如在新会话中会传递不同的字符串对象作为键吗?
有没有办法避免这种情况?
ruby-on-rails - 如何对数据库中的加密元素进行通配符搜索
我正在使用 attr_encrypted 来加密我的一些模型字段,并且我使用 Tire 和 Elasticsearch 进行全文搜索。我只使用一个简单的搜索表单。这是我的模型的一部分:
因此,例如,如果我在数据库中有名称“John”,当我搜索“John”时,查询会在查询数据库之前被加密 (Student.encrypt_name(params[:search])),并返回结果. Elasticsearch 允许通配符搜索,例如如果我搜索“Joh*”,应该返回匹配的结果,但是加密的关键字“Joh”与加密的“John”不同,db 不返回任何结果。对此的任何解决方案将不胜感激。
问候, 拉多斯拉夫
java - 试图从 Java 中解密 attr_encrypted 存储值
我有一个 Rails 应用程序,它在其中一个模型中加密(使用 attr_encrypted)2 个字段。
我的流程的另一部分,不是网络应用程序,需要使用这些数据(明文)执行一些任务。
我正在尝试从数据库中读取存储的值并对其进行解密,但不能..
我的模型如下所示:
DB 字段(encrypted_data1 和 encrypted_data2)充满了数据,但是当我尝试解码 base64(attr_encrypted 默认情况下会这样做)和解密(我尝试从命令行使用 openssl 并使用 Java)时,我得到“坏幻数”(openssl)或关于密钥长度的各种错误(在 Java 中)。我花了很多时间试图解密这些字符串,但就是找不到方法。
这是我拥有的所有数据:
加密 + base64 字符串(用于 data1 和 data2)是:
我可以从它们中解码 base64 并获得一些字节数组。当我尝试:
我得到:“坏幻数”
当我尝试以下 Java 代码时:
我得到“java.security.InvalidKeyException: Invalid AES key length: 14 bytes”
我已经为 Java 代码尝试了许多变体,所以这个特定的可能是一个完全错误..
当我尝试使用红宝石时:
我得到了正确的解密值(如您所见)。
我还注意到,当我尝试在 Java 中加密相同的字符串并在 Base64 中编码时,我得到一个更长的字符串(在 base64 之后)。不知道为什么,但它可能相关..
我想我也应该有一个带有加密值的 salt/iv,但我没有看到它存储在任何地方。我尝试加密相同的值两次并得到相同的输出字符串,所以它不是随机的。
有谁知道 attr_encrypted (它使用 ruby 的加密器)如何加密数据以及我应该如何在外部解密它?
devise - 加密设计令牌
我正在使用带有令牌身份验证的设计,现在,我想加密数据库中的令牌。谁能给我一个提示,在哪里设计从数据库存储/检索令牌?
我还使用了attr_encrypted gem,一旦找到正确的位置,整个加密应该相当容易。
编辑:
我已经像这里描述的那样实现了令牌身份验证:http: //zyphdesignco.com/blog/simple-auth-token-example-with-devise
我在用户模型中添加了以下行,它应该加密 authentication_token
当我运行它并尝试登录时,我收到以下错误消息:
似乎与 devise 和 attr_encrypted 存在冲突,并且两者都在为重新定义 authentication_token 方法而战(感谢@sbfaulkner 的提示)
也许有人有类似的问题并且知道解决方案?
ruby-on-rails - RoR:attr_encrypted 未在数据库中保存数据
我attr_encrypted
在 rails 3.2.13 中使用来加密一列。为此,在我的模型中,我有以下内容:
attr_encrypted :social_security_no, :key => 'a secret key'
该应用程序既不保存social_security_no
也不保存encrypted_social_security_no
在数据库中。
我也试过spectator-attr_encrypted
宝石。但是,现在它给出了以下错误:
/home/ashish/.rvm/gems/ruby-2.0.0-p0@lendty/gems/activerecord-3.2.13/lib/active_record/dynamic_matchers.rb:55:in 'method_missing': undefined method 'attr_encrypted' for #<Class:0x0000000824f768> (NoMethodError)
那么,有什么办法可以摆脱这个问题呢?或者,是否有适用于 Rails 3.2.13 和 Ruby 2.0.0 的 gem 的分叉版本?
而且,这是我的模型:
ruby-on-rails - 在 Rails 4 下的表单显示上编辑 SSN?
我有一个 Rails 4 应用程序,我正在使用attr_encrypted
gem 将 SSN 以加密形式存储在数据库中。
我想要做的是在编辑/显示表格时只显示最后 4 位数字。因此,基本上一旦保存了 SSN,用户就无法在表单中看到完整的 SSN。所以我尝试了以下操作,
我所看到的显示表格上使用<%= @payment_data.ssn %>
,它工作正常。但是在我正在使用的编辑表单上<%= f.input :ssn %>
,编辑字段已预先填充了完整的 SSN。
注意:我在simple_form
表单中使用 gem,但如果我使用基本<%= f.text_field :ssn %>
语法,我会看到相同的完整 SSN。
我在这里做错了什么?