我已经在我的应用程序中设置了attr_encrypted,每条记录都有单独的'iv'。
# Fields
User.e_name
User.e_name_iv
我正在尝试在用户表中搜索已知名称。我试过:
User.find_by_name("Joe Bloggs") # undefined method "find_by_name" for Class
User.where("name = ?", "Joe Bloggs").first # column "name" does not exist
User.where(:e_name => User.encrypt_name("Joe Bloggs")) # must specify an iv
如何按名称查找记录?
虽然可以进行一些搜索,但不是很实用。 您必须潜在地遍历每条记录,尝试每个相应的 IV,直到您获得完全匹配,具体取决于您拥有的记录数量,这将不是很实用。
你读过自述文件吗? https://github.com/attr-encrypted/attr_encrypted#things-to-consider-before-using-attr_encrypted
搜索、加入等
虽然选择在属性级别加密是最安全的 解决方案,并非没有缺点。也就是说,您无法搜索 加密数据,因为您无法搜索它,所以无法为其编制索引 也。也不能对加密数据使用联接。数据是 安全加密实际上是噪音。因此,任何依赖的操作 在数据上不是噪音将不起作用。如果您需要执行以下任何操作 上述操作,请考虑使用数据库和文件 系统加密以及传输加密 您的堆栈。