在Mysql中搜索加密数据

时间:2018-10-09 06:13:03

标签: mysql hibernate encryption fuzzy-search

我有一个用例,我在mysql中存储了许多用户数据。由于PII的原因,它以加密形式存储。这里有两个重要的列,名字姓氏

我想构建一个功能来按用户名(第一个和最后一个)搜索

我认为有两种方法很有意义。

  1. 将用户数据放入弹性搜索中,然后在那里进行模糊搜索。像{firstName:XYZ,lastName:ABC,userId:123}之类的东西,从此处获取用户ID,然后从mysql获取其余信息。

  2. 对查询字符串进行加密,并在FirstName和LastName中进行搜索-在某些情况下可以使用,但在混合使用First Name和Last Name的大多数情况下无法使用。例如:姓名:ABC DEF XYZ-并且ABC DEF是First Name,并且有人查询了ABC,现在什么也不会返回。

  3. 查询所有记录,解密并过滤代码-不好的主意,我的VM将变为OOM,轮询,解密,搜索所有记录的速度太慢了。

    < / li>
  4. 在Mysql中以纯文本格式存储用户名不是一种选择-PII问题

如果有所作为,应用程序将使用Hibernate。

请建议您看似最佳的选择,或者有更好的选择。

0 个答案:

没有答案