我只是需要一些建議在這裏。我需要保護一些列數據,所以我一直在使用Google搜索C#4.0/Sql server 2008(不是R2)。C#4.0/Sql Server 2008:業務層加密/解密
這可能是我所需要的:
"When the data must be protected from sysadmins. Practically, in this scenario it would be best not to use SQL Server internal encryption and far better to rely exclusively on the middle tier to perform encryption and decryption. It would be very difficult to protect your data from a determined sysadmin if your keys are stored in SQL Server." Source: 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();
錯誤發現:數據的長度來解密是無效的。
如果您發佈加密/解密代碼,那麼也許我們可以用錯誤的幫助。這應該不是非常困難。 – Paddy 2012-03-12 10:04:59