以明文形式显示时检索加密值

问题描述

在将某些字符串存储在关系数据库中之前,我需要使用AES 256 CBC对其进行加密。我在密文前面加上了所使用的IV。纯文本是一个唯一的字符串(我称之为“键”),它与应用程序中的用户具有一对一的关系。

问题在于,当用户执行某项操作时,他们将发送明文密钥,而我必须去检索与其关联的所有元数据(例如用户的ID,权限等)。但是我已经加密了数据库中的密钥,所以我不能像where encrypted_key = :plain_key那样进行过滤。我希望能够仅使用明文键来执行此检索,而不要求使用明文键来发送其他数据。 (可能有必要在查询中使用更多信息;我只是在查看是否有一些巧妙的方法)。

我可以只检索数据库中的所有加密密钥,然后遍历所有密文并解析出IV,用IV重新加密从用户那里收到的明文密钥,看看是否找到匹配项。虽然我不想检索所有密文。如果IV可以通过某种方式预测,那么我可以做到,但是我不想将纯文本键或相关元数据的任何部分用作IV。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)