Шифровать данные в одном «слоте» в базе данных - PullRequest
2 голосов
/ 23 сентября 2011

Я прочитал большое руководство о том, как зашифровать данные с помощью симметричного ключа в одном столбце. Нажмите здесь, чтобы просмотреть его.

Это помогло мне настроить столбец для шифрования, что мне и нужно.Моя проблема в том, что я буду постоянно обновлять строки в моей базе данных - поэтому копирование одного целого исходного столбца в зашифрованный столбец, как показано в учебном пособии, не работает.Есть ли способ, которым я могу вставить значение, которое мне дано (используя C # / asp), и Direclty зашифровать его, когда я вставляю его в базу данных, вместо того, чтобы поместить его в один столбец и скопировать его, а затем сбросдругой столбец?

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Вам необходимо открыть сертификат, чтобы сделать шифрование.Это со страницы, на которую вы ссылались:

OPEN SYMMETRIC KEY TestTableKey
DECRYPTION BY CERTIFICATE EncryptTestCert

UPDATE TestTable
SET EncryptSecondCol = ENCRYPTBYKEY(KEY_GUID('TestTableKey'),SecondCol)

Вставка работает так же:

OPEN SYMMETRIC KEY TestTableKey
DECRYPTION BY CERTIFICATE EncryptTestCert

INSERT INTO TestTable (FirstCol, EncryptSecondCol)
VALUES (6, ENCRYPTBYKEY(KEY_GUID('TestTableKey'),'Sixth'))

Вы можете выполнить команду открытия ключа перед выполнением вставки или создать хранимую процедурувкладыш.

1 голос
/ 23 сентября 2011

Просто позвоните EncryptByKey для ваших данных для шифрования. Вам не нужен другой столбец.В этом случае он должен быть включен в ваш SQL-запрос, который должен быть параметризованным запросом или хранимой процедурой.

Вставить в любые значения YourEncryptedData (EncryptByKey (...)) Возможно, вам придется сначала открыть ключ первым, в зависимости отна вашей реализации.

http://msdn.microsoft.com/en-us/library/ms174361.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...