Tu puedes use SQLCLR para llamar al cifrado desde C#, aunque este es un enfoque incorrecto. Si necesita hacer un algoritmo personalizado, debe encapsularlo en una función SQLCLR para que pueda usarse en una instrucción UPDATE o incluso INSERT o SELECT o en cualquier lugar. Algo como:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Entonces puede usar esa función de la siguiente manera:
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;
PERO , antes de escribir un algoritmo de cifrado personalizado, es posible que desee comprobar las diversas funciones ENCRYPTBY / DECRYPTBY emparejadas integradas que pueden hacer exactamente lo que necesita: