CREATE MASTER KEY ENCRYPTION
BY PASSWORD = 'Test1'
CREATE CERTIFICATE EncryptTestCert
WITH SUBJECT = 'Test1'
CREATE SYMMETRIC KEY TestTableKey
WITH ALGORITHM = TRIPLE_DES ENCRYPTION
BY CERTIFICATE EncryptTestCert
CREATE SYMMETRIC KEY Test1
WITH ALGORITHM = TRIPLE_DES ENCRYPTION
BY CERTIFICATE EncryptTestCert
OPEN SYMMETRIC KEY TestTableKey DECRYPTION
BY CERTIFICATE EncryptTestCert
UPDATE [Security].[User]
SET EncryptedPhone = ENCRYPTBYKEY(KEY_GUID('TestTableKey'),Phone)
已成功更新加密数据的EncryptedPhone列(在varbinary中)。
现在的问题是,我在应用程序上使用LINQToSQL并且我使用内联Linq To SQL查询(不是存储过程或sql查询),我需要解密此数据以在页面上查看。从上面的数据库代码中可以看出,我使用TripleDES来创建加密数据。但是我无法理解如何在C#上实现通过SQL查询加密的解密数据。