Мне просто нужен совет.Мне нужно защитить некоторые данные столбцов, поэтому я прибегаю к поиску шифрования в C # 4.0 / Sql server 2008 (не R2).
Это, вероятно, то, что мне нужно:
"Когда данные должны быть защищены от системных администраторов. Практически в этом сценарии было бы лучше не использовать внутреннее шифрование SQL Server, а гораздо лучше полагаться исключительно на средний уровень для выполнения шифрования и дешифрования.очень трудно защитить ваши данные от определенного системного администратора, если ваши ключи хранятся в SQL Server. "Источник: msdn
Какой правильный подход?
Я пытался сохранить данные, которые были зашифрованы с помощью Rijndael , в базу данных.
Я получаю ошибку: Length of the data to decrypt is invalid
Я еще не погуглил.
Должен ли я продолжать бороться с этим или я должен попытаться решить эту проблему с помощью CLR или как?Я просто не могу найти учебник, который показывает мне, как зашифровать / расшифровать на бизнес-уровне.
Есть предложения?
Спасибо
РЕДАКТИРОВАТЬ:
Хорошо, это то, что я имею до сих пор.Данные зашифрованы с помощью Rinjdael, как показано ранее.Он хранится в столбце
TestCrypt (varbinary(255), null)
В базе данных он выглядит следующим образом:
0xF6CA99F5B6BFA1D9A0BD2381177E049E02F381078966195B68A54A5BEC4C
Получается с помощью sp, например:
SELECT cast(s.TestCrypt AS varbinary) AS TestCrypt
А в слое доступа к данным:
while (reader.Read())
{
data.TestCrypt = (byte[])reader["TestCrypt"];
}
В этой строке обнаружена ошибка в DecryptStringFromBytes
plaintext = srDecrypt.ReadToEnd();
Ошибка: длина данных для расшифровки недопустима.