Третий вариант, который может быть наиболее подходящим, состоит в том, чтобы просто вообще не хранить эти значения в конкретной базе данных. Я бы сказал, что, вероятно, более уместно хранить их в другом месте, поскольку вы, вероятно, не собираетесь присоединиться к таблице чувствительных слов.
В противном случае вы , вероятно, захотите использовать предложение Конрада Фрикса о встроенной поддержке шифрования SQL Server.
Причина, по которой я это говорю, заключается в том, что вы говорите, что оба = и LIKE должны работать с вашими данными. Когда вы хэшируете строку с использованием хеш-алгоритма, такого как SHA / MD5 / и т. Д., Результаты не будут соответствовать семантике LIKE на человеческом языке.
Если точное равенство (=) является достаточным (т.е. вам действительно не нужно иметь возможность выполнять LIKE-запросы), вы можете использовать криптографическую функцию для защиты текста. Но имейте в виду, что однонаправленная хеш-функция запрещает вам получать список строк «без хэширования» - если вам нужно это сделать, вам нужно использовать алгоритм шифрования, где возможно дешифрование, например AES.