Vous pouvez utilisez SQLCLR pour appeler le chiffrement à partir de C #, bien que ce soit la mauvaise approche. Si vous avez besoin de faire un algorithme personnalisé, vous devez l'encapsuler dans une fonction SQLCLR afin qu'il puisse être utilisé dans une instruction UPDATE ou même un INSERT ou SELECT ou n'importe où. Quelque chose comme :
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Ensuite, vous pouvez utiliser cette fonction comme suit :
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;
MAIS , avant d'écrire un algorithme de chiffrement personnalisé, vous voudrez peut-être vérifier les différentes fonctions intégrées ENCRYPTBY / DECRYPTBY qui pourraient faire exactement ce dont vous avez besoin :