attr_encrypted gem在rails 6中不工作



我在用户模型的rails 4.1中使用attr_encrypted(1.3.3(,详细信息如下

attr_encrypted :email, :key => 'some_key'

在将应用程序升级到rails 6之后,attr_encrypted被提升为attr_encCrypted(3.1.0(,后者使用加密器(~>3.0(

在加密机中(~>3.0(引入了新的验证

raise ArgumentError.new("key must be #{cipher.key_len} bytes or longer") if options[:key].bytesize < cipher.key_len

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

如何在不破坏用户功能的情况下使用rails 6属性加密的gem?

要在attr加密的gem应用程序中使用旧的行为,您必须使用更多的参数

之前:

attr_encrypted :email, :key => 'some_key'

现在:

attr_encrypted :email, key: 'some_key', algorithm: 'aes-256-cbc', mode: :single_iv_and_salt, insecure_mode: true

如果您的密钥小于32字节

insecure_mode: true

将允许您使用较短的密钥。

这是这个gem 2.0版本中的一个突破性变化。默认算法现在是"aes-256-gcm"。此处提供更多详细信息https://github.com/attr-encrypted/attr_encrypted#the-算法选项

相关内容

  • 没有找到相关文章

最新更新