我有一个在mysql中存储大量用户数据的用例。由于PII的原因,它以加密的形式存储。这里有两个重要的栏目,
第一姓
和
姓氏
.
我想建立一个功能
按用户名搜索(第一个和最后一个)
我认为有几种方法是有道理的。
-
将用户数据放在弹性搜索中,然后在那里进行模糊搜索。比如{firstname:xyz,lastname:abc,user id:123},从这里获取用户id,然后从mysql获取剩余信息。
-
加密查询字符串并在first name和lastname中搜索-在某些情况下有效,但在firstname和lastname混合的大多数情况下无效。例如:name:abc def xyz-abc def是名字,是查询abc的人,现在不会返回任何内容。
-
查询所有的记录,解密,然后在代码中过滤-坏主意,我的虚拟机将进入OOM,它将太慢,投票,解密,搜索在所有的记录。
-
在mysql中以纯文本存储用户名不是一个选项-pii问题
应用程序使用hibernate,如果这有区别的话。
请提出什么看起来是最好的选择,或有更好的选择,然后这些。