Decodering van versleutelde SQL Server-gegevens van .net

Is het mogelijk om de gecodeerde EncryptByCert-gegevens te ontsleutelen die zijn opgeslagen in een SQL Server-kolom vanuit .net?

Ik wil EncryptByCert gebruiken in een opgeslagen procedure om een ​​RSA-versleutelingswaarde in een kolom op te slaan. Vervolgens maakt een clienttoepassing verbinding met SQL Server en vraagt ​​deze de gecodeerde gegevens aan en moet deze vervolgens decoderen met de persoonlijke sleutel van het certificaat. Is dit mogelijk?

Ik heb geen grondige kennis van codering. Dat is waarom ik deze vraag stel. Misschien is er een goed voorbeeld om dit te doen?

1
Ik ben er vrij zeker van dat deze decodering mogelijk is, maar ik heb niet gevonden welk formaat door EncryptByCert wordt gebruikt.
toegevoegd de auteur Paŭlo Ebermann, de bron

1 antwoord

SQL Server codeert de gegevens naar een reeks bytes en retourneert dit als het resultaat. Daar wordt geen containerformaat gebruikt . Daarom kan het rechtstreeks worden gedecodeerd door de RSACryptoServiceProvider . Belangrijk om hier op te merken is dat SQL Server PKCS # 1 V1.5 padding gebruikt (tenminste 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
toegevoegd