puoi utilizzare SQLCLR per chiamare la crittografia da C#, sebbene questo sia l'approccio sbagliato. Se è necessario eseguire un algoritmo personalizzato, è necessario incapsularlo in una funzione SQLCLR in modo che possa essere utilizzato in un'istruzione UPDATE o anche in INSERT o SELECT o ovunque. Qualcosa come:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Quindi puoi usare quella funzione come segue:
UPDATE tb
SET tb.FieldA = EncryptByAES(tb.FieldA)
FROM dbo.TableName tb
WHERE tb.FieldA some_test_to_determine_that_FieldA_is_not_alreay_encrypted;
MA , prima di scrivere un algoritmo di crittografia personalizzato, potresti voler controllare le numerose funzioni ENCRYPTBY / DECRYPTBY integrate che potrebbero fare esattamente ciò di cui hai bisogno: