můžete použijte SQLCLR k volání šifrování z C#, i když toto je nesprávný přístup. Pokud potřebujete vytvořit vlastní algoritmus, měli byste jej zapouzdřit do funkce SQLCLR, aby jej bylo možné použít v příkazu UPDATE nebo dokonce v příkazu INSERT nebo SELECT nebo kdekoli. Něco jako:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Potom můžete tuto funkci použít následovně:
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;
ALE , než napíšete vlastní šifrovací algoritmus, možná budete chtít vyzkoušet několik vestavěných spárovaných funkcí ENCRYPTBY / DECRYPTBY, které mohou dělat přesně to, co potřebujete: