2011-10-27 46 views
1

是否可以解密存儲在.net中的SQL Server列中的EncryptByCert加密數據?解密來自.net的SQL Server加密數據

我想在存儲過程中使用EncryptByCert來存儲RSA-encrpyted值的列。然後客戶端應用程序將連接到SQL Server並請求編碼數據,然後需要使用證書的私鑰進行解碼。這可能嗎?

我沒有深入的加密知識。這就是爲什麼我問這個問題。也許這樣做有一個很好的例子嗎?

+0

我很確定這個解密是可能的,但我沒有找到EncryptByCert使用哪種格式。 –

回答

1

SQL Server將數據加密爲一個字節序列,並將其作爲結果返回。有沒有使用容器格式。因此,它可以直接由RSACryptoServiceProvider解密。此處重要的是,SQL Server使用PKCS#1 V1.5填充(至少SQL Server 2005)。

需要注意的一點:
SQL服務器返回,因爲它是從RSACryptoServiceProvider期望以相反的順序加密結果。因此,在用RSACryptoServiceProvider.Decrypt解密之前,字節序列必須被反轉。