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

本文关键字:解密 输出 文件 文本 DES TRIPLE ENCRYPTION T-sql | 更新日期: 2023-09-27 18:07:58

如何在c#中解密三重des加密文件。名称空间?

输出文件:

<>之前FirstCol secondCol EncryptSecondCol1值00E35587C2CCEF4683B98686ED0483480100000054ABDFFB520111778B477223D1CD853F3CE33B4DD96C0F96之前

我用来创建下面加密文件的sql:

<>之前创建主密钥——密码加密= 'jjvc1234%';——去----创建测试证书——创建证书任务——WITH SUBJECT = '任务加密',——expiry_date = '20301231';——去创建对称键TestTableKey——with algorithm = triple_des加密——按证书任务——去声明@TestTable表(FirstCol varchar(8),secondCol varchar(100),EncryptSecondCol VARBINARY(256))插入到@TestTable值("1","价值",零);——select * from @TestTable打开对称密钥TestTableKey解密按证书任务更新@TestTableSET EncryptSecondCol = ENCRYPTBYKEY(KEY_GUID('TestTableKey'),secondCol)select * from @TestTable打开对称密钥TestTableKey解密——按证书任务——SELECT FirstCol,SecondCol,CONVERT(VARCHAR(50),DECRYPTBYKEY(EncryptSecondCol)) AS DecryptSecondCol——从@TestTable——CLOSE SYMMETRIC KEY TestTableKey——关闭它们drop——删除对称键TestTableKey——去——删除证书任务——去——放下万能钥匙——去——备份证书任务——TO FILE = 'c:'Temp'TestCert.cer'

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

c#提供三重DES作为核心加密库的一部分

http://msdn.microsoft.com/en-us/library/system.security.cryptography.tripledes.aspx

您真的不想这样做—现在您的密钥在两个地方,这使得它更加难以保护。如果您允许一个系统使用对称密钥进行加密,则通常应该由同一系统进行解密。

在任何情况下,你都不能从SQL导出对称加密密钥,因为你使用证书作为对称密钥的源,并且在创建对称证书时没有提供IDENTITY_VALUE或KEY_SOURCE, SQL使用随机值生成密钥,所以你也不能在c#中复制它。