首页 > 解决方案 > rails crypt_keeper gem的问题

问题描述

我在使用 crypt keeper gem 时遇到了一些麻烦。我使用的是 2.0.1 版。

我已经设法设置了所有元素,例如盐和密钥,并且我还成功地加密和解密了现有表。我已经使用 :active_support 和 :mysql_aes_new (使用 mariadb 10.7)完成了这项工作。

我最终决定我将不得不使用 :mysql_aes_new,因为已经表明这允许“快速索引和搜索数据”。

然而,当我使用 .where 指令使用示例范围时,我一直得到一个空的结果集。我真的不需要示例中指示的后续纯文本搜索。我已经尝试在表中加密的字段以及未加密的字段上执行此操作;无论如何,搜索会产生一个空集。

我可能错过了什么吗?具体来说,我正在尝试设置一个范围,如果我需要查找特定字段不为空的所有记录,例如:

record_set = Modelname.where('fieldname != ?', nil).order(id: desc)

除此之外,我正在尝试使用 update_column 为某些行设置值,并且沿着以下行抛出错误

Column :<FIELD_NAME> must be of type 'text' or 'binary' to be used for encryption 

错误中指示的字段不是表中的第一个字段,而是第一个被加密的字段。然而,我不想更新那个领域,只是我感兴趣的那个。

很奇怪。有点神秘(双关语)。

标签: ruby-on-railsencryptionrubygems

解决方案


推荐阅读