Descifrar datos encriptados de SQL Server desde .net

¿Es posible descifrar los datos cifrados con EncryptByCert que se almacenan en una columna de SQL Server desde .net?

Quiero usar EncryptByCert en una Procedimiento para almacenar un valor cifrado por RSA en una columna. Luego, una aplicación cliente se conectará a SQL Server y solicitará los datos codificados y luego deberá decodificarse con la clave privada del certificado. es posible?

No tengo un conocimiento profundo de cifrado. Es por eso que hago esta pregunta. Tal vez hay un buen ejemplo para hacer esto?

1
Estoy bastante seguro de que este descifrado es posible, pero no encontré qué formato utiliza EncryptByCert.
agregado el autor Paŭlo Ebermann, fuente

1 Respuestas

SQL Server cifra los datos a una secuencia de bytes y los devuelve como resultado. No hay formato de contenedor utilizado . Por lo tanto, se puede descifrar directamente mediante RSACryptoServiceProvider . Es importante destacar que el servidor SQL usa el relleno PKCS # 1 V1.5 (al menos 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
agregado