0

Je constate que les divers articles de la fonction Toujours chiffré de SQL Server 2016 décrivent la création de la clé de chiffrement de colonne à l'aide de l'interface utilisateur SQL Server Management Studio ou de la commande New-​Sql​Column​Encryption​Key powershell. Mais que faire si l'application cliente C# elle-même veut créer la clé de cryptage de colonne? Quel est le format de cette colonne ENCRYPTED_VALUE?Comment créer une clé de chiffrement de colonne Toujours chiffré à partir du client C#

CREATE COLUMN ENCRYPTION KEY CEK1 
WITH VALUES (
COLUMN_MASTER_KEY = CMK1, 
ALGORITHM = 'RSA_OAEP', 
ENCRYPTED_VALUE = ?????? 

Répondre

0

Pour le fournisseur de magasin de certificat, vous pouvez utiliser le SqlColumnEncryptionCertificateStoreProvider.EncryptColumnEncryptionKey Method, par exemple comme indiqué ci-dessous:

var randomBytes = new byte[ 32 ]; 
using (var rng = new RNGCryptoServiceProvider()) 
{ 
    rng.GetBytes(randomBytes); 
} 
var provider = new SqlColumnEncryptionCertificateStoreProvider(); 
var encryptedKey = provider.EncryptColumnEncryptionKey(masterKeyPath, "RSA_OAEP", randomBytes); 
var encryptedKeySerialized = "0x" + BitConverter.ToString(encryptedKey).Replace("-", ""); 

Crédit this blog post pour moi pointant dans la bonne direction.