I'm writing a .NET web app that will read and write information to a SQL Server 2008 database. Some of this information will be highly confidential in nature so I want to encrypt certain data elements.
I don't want to use TDE or any full-database encryption for performance reasons. My main concern is protecting this sensitive data as a last resort against a SQL injection or even a database server compromise.
What is the best way to do this to preserve performance? Is it faster to use the SQL Server 2008 encryption functions such as EncryptByKey
, or would it be faster to encrypt and decrypt the data in the .NET web app itself? The app would be using a symmetric key stored in the secure web.config and store the encrypted values in the DB.