SQL Serverの暗号化されたデータを.netから復号化する

.NET内のSQL Server列に格納されているEncryptByCertで暗号化されたデータを復号することは可能ですか?

私は、ストアドストアに EncryptByCert を使用したいRSA-encrpytedの値を列に格納するプロシージャ。その後、クライアントアプリケーションはSQL Serverに接続し、エンコードされたデータを要求し、証明書の秘密鍵でデコードする必要があります。これは可能ですか?

私は暗号化に関する深い知識は持っていません。だから私はこの質問をする。おそらくこれを行う良い例がありますか?

1
私はこの復号化が可能であると確信していますが、EncryptByCertがどのフォーマットを使用しているかはわかりませんでした。
追加された 著者 Paŭlo Ebermann,

1 答え

SQL Serverはデータを一連のバイトに暗号化し、結果として返します。 コンテナ形式はありません。したがって、 RSACryptoServiceProvider によって直接復号化することができます。ここで重要なのは、SQL ServerはPKCS#1 V1.5のパディング(少なくともSQL Server 2005)を使用していることです。

One thing to notice:
SQL server returns the encrypted result in reverse order as it is desired from RSACryptoServiceProvider. Therefore the byte sequence has to be reversed before decrypting it with RSACryptoServiceProvider.Decrypt.

2
追加された