Bạn có thể sử dụng SQLCLR để gọi mã hóa từ C #, mặc dù đây là cách tiếp cận sai. Nếu bạn cần thực hiện một thuật toán tùy chỉnh, bạn nên gói nó vào một hàm SQLCLR để nó có thể được sử dụng trong câu lệnh UPDATE hoặc thậm chí là INSERT hoặc SELECT hoặc ở bất kỳ đâu. Một cái gì đó như:
public class SP
{
[Microsoft.SqlServer.Server.SqlFunction(IsDeterministic = true)]
public static SqlString EncryptByAES(SqlString TextToEncrypt)
{
return DoSomething(TextToEncrypt.Value);
}
}
Sau đó, bạn có thể sử dụng chức năng đó như sau:
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;
NHƯNG , trước khi viết thuật toán mã hóa tùy chỉnh, bạn có thể muốn xem một số hàm ENCRYPTBY / DECRYPTBY được ghép nối tích hợp có thể thực hiện chính xác những gì bạn cần: