Я последовал за http://msdn.microsoft.com/en-us/library/ms179331.aspx для шифрования столбца на SQL Server.Полезность шифрования столбца SQL
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '[email protected]'
CREATE CERTIFICATE TestCert WITH SUBJECT = 'SSN Encryption'
CREATE SYMMETRIC KEY HRKey
WITH ALGORITHM = DES
ENCRYPTION BY CERTIFICATE TestCert;
OPEN SYMMETRIC KEY HRKey
DECRYPTION BY CERTIFICATE TestCert;
UPDATE [dbo].[Person]
SET [EncryptedSSN] = EncryptByKey(Key_GUID('HRKey'), CAST(SSN AS varchar(10)));
SELECT TOP 10 * FROM Person
1 Tom Thomson 111111111 0x0026DA624DBCA04CBCBF621FD5F......
2 Steve Stephenson 222222222 0x0026DA624DBCA04CBCBF6.....
Показывает, что у меня есть зашифрованные данные, что я и хотел.
OPEN SYMMETRIC KEY HRKey
DECRYPTION BY CERTIFICATE TestCert;
SELECT PersonID, Firstname, Lastname [SSN],
CONVERT(VARCHAR, DecryptByKey([EncryptedSSN]))
AS 'Decrypted SSN'
FROM [dbo].[Person]
1 Tom Thomson 111111111 111111111
2 Steve Stephenson 222222222 222222222
Close SYMMETRIC KEY HRKey
Игнорирование, что я до сих пор незашифрованный столбец, вопрос в том, что есть это действительно улучшилось, это просто для меня, чтобы открыть ключ и использовать его для расшифровки данных. Я предполагаю, что мне не хватает какого-то понимания.
Идея состоит в том, что ключ привязан к учетной записи пользователя, поэтому вы можете расшифровывать данные только в том случае, если у вас есть учетные данные для этой учетной записи пользователя. Кто-то, у кого была база данных, но не учетные данные для входа, не сможет расшифровать данные. –