Я шифрую значения на уровне приложения вместе с ключом шифрования, а затем передаю это зашифрованное значение на SQL Server.
При расшифровке я передаю зашифрованные значения в приложение и дешифрую перед использованием их в приложении.
Я предпочитаю этот метод, так как он поддерживает метод шифрования отдельно от SQL Server.
В противном случае, если пользователь должен был взломать ваш SQL Server, включая ваши зашифрованные значения, и вы использовали T-SQL User Defined Function
, у них была бы возможность расшифровать значения, что делает шифрование бесполезным.