Я хочу применить шифрование на уровне столбцов SQL с использованием симметричных ключей.Начальные шаги, необходимые для создания главного ключа базы данных, сертификатов и симметричных ключей, кажутся простыми, и я успешно протестировал шифрование / дешифрование данных с использованием симметричных ключей.
Однако, как только данные зашифрованы, я не знаю, каклучше всего запросить это.Например,
SELECT PlainTextA, PlainTextB, PlainTextC
WHERE CONVERT(varchar, DECRYPTBYKEY(EncyptedColumn)) = @SearchTerm
наверняка приведет к полному сканированию таблицы?
Другой вариант, который, как мне показалось, может сработать, это сначала зашифровать критерии поиска, например,
SELECT PlainTextA, PlainTextB, PlainTextC
WHERE EncyptedColumn = ENCRYPTBYKEY(KEY_GUID('KeyName'), @SearchTerm)
, но этоне работает, поскольку сгенерированное зашифрованное значение всегда отличается.
Любые предложения будут приняты с благодарностью.