【问题标题】:search AES/CBC encrypted text搜索 AES/CBC 加密文本
【发布时间】:2017-09-28 00:40:23
【问题描述】:

我的系统使用 AES/CBC 加密将用户的电子邮件地址存储到数据库中。所以所有这些电子邮件地址都以加密文本(base64)存储。并且每次明文相同时生成的加密文本都不同(它是CBC模式)

有没有办法只用数据库中某人电子邮件地址的子字符串来搜索电子邮件地址?

例如从“itsmyemail@email.com”的 AES/CBC 加密版本中搜索“myemail”

AFAK 这是不可能的,但我不确定是否有任何我不知道的方法。

【问题讨论】:

  • 不,不能。如果您需要能够通过电子邮件地址进行查询,则无需对其进行加密。

标签: encryption aes cbc-mode


【解决方案1】:

如您所说,无法使用like "%substring%" 搜索带有子字符串或 SQL 请求的电子邮件。

您只能进行全文搜索:select * from your table where email="john.doe@email.com"

为此,您可以在表格中添加一个字段。这个新字段包含使用不同 AES 密钥的明确值的 HMAC。有人称之为“盲索引”。所以这个字段是索引的,当你想从一个明确的值中搜索时:

  • 从您要寻找的明确价值中获取 HMAC
  • select * from your table where email_blindindex="HMAC_value"

【讨论】:

    猜你喜欢
    • 2015-05-27
    • 2013-08-11
    • 1970-01-01
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    相关资源
    最近更新 更多