C# T-sql TRIPLE_DES ENCRYPTION-现在我需要用c解密输出文本文件

C# T-sql TRIPLE_DES ENCRYPTION-现在我需要用c解密输出文本文件,c#,tsql,C#,Tsql,如何在c中对文件进行三重des加密解密。哪个名称空间 这是输出文件: FirstCol secondCol EncryptSecondCol 1 value 00E35587C2CCEF4683B98686ED0483480100000054ABDFFB520111778B477223D1CD853F3CE33B4DD96C0F96 我用于创建以下加密文件的sql: --CREATE MASTER KEY --ENCRYPTION BY PASSWORD = 'jj

如何在c中对文件进行三重des加密解密。哪个名称空间

这是输出文件:

FirstCol secondCol EncryptSecondCol 1 value 00E35587C2CCEF4683B98686ED0483480100000054ABDFFB520111778B477223D1CD853F3CE33B4DD96C0F96 我用于创建以下加密文件的sql:

--CREATE MASTER KEY --ENCRYPTION BY PASSWORD = 'jjvc1234%'; --GO ---- Create a test certificate --CREATE CERTIFICATE Tasc -- WITH SUBJECT = 'Tasc Encryption', -- EXPIRY_DATE = '20301231'; --GO --CREATE SYMMETRIC KEY TestTableKey --WITH ALGORITHM = TRIPLE_DES ENCRYPTION --BY CERTIFICATE Tasc --GO Declare @TestTable table(FirstCol varchar(8),secondCol varchar(100),EncryptSecondCol VARBINARY(256)) insert into @TestTable values('1','value',null); --select * from @TestTable OPEN SYMMETRIC KEY TestTableKey DECRYPTION BY CERTIFICATE Tasc UPDATE @TestTable SET EncryptSecondCol = ENCRYPTBYKEY(KEY_GUID('TestTableKey'),secondCol) select * from @TestTable --OPEN SYMMETRIC KEY TestTableKey DECRYPTION --BY CERTIFICATE Tasc --SELECT FirstCol,SecondCol,CONVERT(VARCHAR(50),DECRYPTBYKEY(EncryptSecondCol)) AS DecryptSecondCol --FROM @TestTable --CLOSE SYMMETRIC KEY TestTableKey -- close them drop --DROP SYMMETRIC KEY TestTableKey --GO --DROP CERTIFICATE Tasc --GO --DROP MASTER KEY --GO -- BACKUP CERTIFICATE Tasc --TO FILE = 'c:\Temp\TestCert.cer'
C提供三重DES作为核心加密库的一部分


你真的不想这样做-你现在有你的钥匙在两个地方,这使得它更难安全。如果您授予一个系统使用对称密钥进行加密的权限,则通常相同的系统应该进行解密


在任何情况下,您都无法从SQL导出对称加密密钥,并且由于您使用证书作为对称密钥的源,并且在创建对称证书时未提供标识值或密钥源SQL使用随机值生成密钥,因此,您也无法在C中复制它。

我需要这样做,我的朋友不是一个选项。除此之外,您不能导出用于加密的对称密钥,也不能轻松地重新创建它,因此您的建议是,出于所有目的,显然排除了我知识的不可能限制。我希望我可以在另一台计算机上使用该证书。该证书只保护用于加密的对称密钥,而不是密钥。请举一个如何解密文本文件的示例。我将在周一回答这个问题。你会喜欢的!