Лучший способ сильно зависит от того, какая у вас база данных.
Если у вас есть база данных, которая поддерживает зашифрованные столбцы (например, сервер sql), просто используйте для этого то, что уже встроено в базу данных.
Относительно последнего вопроса: «Можно ли использовать метод шифрования, который позволяет расшифрователю работать, только если вы запускаете его на сервере?»
Нет. Однако, если вы используете встроенное шифрование базы данных, тогда ключ фактически хранится на самом сервере в защищенной области ... что примерно так же хорошо, как и его получение.