存储在MS SQL服务器中的数据使用AES128进行加密,AES128是一种对称密钥算法。
如果我知道密码,如何在C#中解密这些数据?
答案 0 :(得分:1)
您可以调用存储过程来解密密钥并返回结果。让您在名为“YOUR_TABLE”的表中加密名为“SSN”的列,密码为“YOUR_PASSWORD”。要返回解密的SSN,这个存储过程将正常工作:
DECLARE @SymKeyPwd VARCHAR(50) = 'YOUR_PASSWORD'
DECLARE @open nvarchar(200)
SET @open = 'OPEN SYMMETRIC KEY Sym_ssn DECRYPTION BY CERTIFICATE Cert_Password WITH PASSWORD = ' + quotename(@SymKeyPwd,'''') + ';';
SELECT (CAST(DECRYPTBYKEY(SSN) as nvarchar(MAX) FROM YOUR_TABLE
IF EXISTS (
SELECT *
FROM sys.openkeys
WHERE key_name = 'Sym_ssn'
)
BEGIN
CLOSE SYMMETRIC KEY Sym_ssn
END
从您的c#代码调用上述SP并获得所需的结果。