Я могу думать о двух возможных подходах.
Первый работает, когда сами имена не являются секретными, но данные, связанные с ними, есть.Вы можете настроить отдельный поисковый индекс:
Name Record Number
---- -------------
John Q. Public 12345
Hector H. Suarez 54321
Katherine T. Carson 98712
Поиск по индексу, чтобы найти соответствующий номер записи.Получить и расшифровать эту конкретную запись.
Второй - для случаев, когда сами имена являются секретными.По сути, обрабатывайте имена как пароль: хэшируйте каждое имя с помощью криптографически безопасного хэша, например, SHA-256.Вы не сможете использовать соль в этом случае, потому что это для поиска.Вам также может понадобиться предварительно обработать поиски, так как «John Q. Public» и «John Q Public» (без полной остановки) будут хэшировать до очень разных значений.Этот индекс поиска выглядит следующим образом:
Hashed Name Record Number
----------- -------------
1A2BFF68C ... CAF4 12345
5820BAA5F ... 67FA 54321
2039F288A ... 9BC2 98712
Для каждого поиска вы хешируете имя и ищите этот хеш.Снова получить и расшифровать соответствующую запись.Вы не можете выполнять поиск по частичным именам, например, «получить все данные о Смитах», если вы не готовы установить ряд похожих индексов для всех основных возможностей поиска.