Du kan använd SQLCLR för att anropa kryptering från C#, även om detta är fel tillvägagångssätt. Om du behöver göra en anpassad algoritm, bör du kapsla in den i en SQLCLR-funktion så att den kan användas i en UPDATE-sats eller till och med en INSERT eller SELECT eller var som helst. Något i stil med:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Sedan kan du använda den funktionen enligt följande:
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;
MEN , innan du skriver en anpassad krypteringsalgoritm, kanske du vill kolla in de flera inbyggda parade ENCRYPTBY / DECRYPTBY-funktionerna som kan göra precis vad du behöver: