2011-10-27 14 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)を使用していることです。注目すべき

一つのこと:それはRSACryptoServiceProviderから要求されるよう
SQLサーバは逆の順序で暗号化された結果を返します。したがって、バイトシーケンスは、RSACryptoServiceProvider.Decryptで解読する前に元に戻す必要があります。

関連する問題