У меня есть сценарий использования, где я храню много пользовательских данных в mysql.По причинам PII он хранится в зашифрованном виде.Здесь есть два важных столбца: first_name и last_name .
Я хочу создать функцию для поиска по имени пользователя (как первого, так и последнего)
Есть пара подходов, которые, на мой взгляд, имеют смысл.
Поместите данные пользователя в Elastic Search и выполните там нечеткий поиск.Что-то вроде {firstName: XYZ, lastName: ABC, userId: 123}, извлеките здесь идентификатор пользователя, затем извлеките оставшуюся информацию из mysql.
Зашифруйте строку запроса и найдите еев FirstName и LastName - будут работать в некоторых случаях, но не будут работать в большинстве случаев, когда смешиваются Имя и Фамилия.например: Имя: ABC DEF XYZ - и ABC DEF - это Имя, и лицо, запрашивающее ABC, и теперь ничего не вернется.
Запросите все записи, расшифруйте их и затем отфильтруйте вкод - плохая идея, моя виртуальная машина будет работать с OOM, и она будет слишком медленной для опроса, дешифрования, поиска во всех записях.
Хранение имени пользователя в текстовом формате в Mysql неопция - выпуск PII
Приложение использует Hibernate, если это имеет значение.
Пожалуйста, предложите, как выглядит лучший вариант, или есть лучший варианттогда эти.