是否可以从.net中解密存储在SQL Server列中的EncryptByCert加密数据?
我想在存储过程中使用EncryptByCert来存储列中的RSA加密值。然后,客户端应用程序将连接到SQL Server并请求编码数据,然后需要使用证书的私钥进行解码。这可能吗?
我对加密知之甚少。这就是我问这个问题的原因。也许有一个很好的例子可以做到这一点?
答案 0 :(得分:2)
SQL Server将数据加密为字节序列并将其作为结果返回。 没有使用容器格式。因此,它可以由RSACryptoServiceProvider
直接解密。这里需要注意的是,SQL Server使用PKCS#1 V1.5填充(至少SQL Server 2005)。
有一点需要注意:
SQL Server按照RSACryptoServiceProvider
的要求以相反的顺序返回加密结果。因此,在使用RSACryptoServiceProvider.Decrypt
解密字节序列之前,必须将其反转。