开发者

T-sql TRIPLE_DES ENCRYPTION - now I need to decrypt the output text file in c#

How do I decrypt triple des encryption the file in c#. Which namespace?

This is the output file:

FirstCol  secondCol  EncryptSecondCol
1         value      00E35587C2CCEF4683B98686ED0483480100000054ABDFFB520111778B477223D1CD853F3CE33B4DD96C0F96

The sql that I used to create the encrypted file below:


--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),DECRYPTBYK开发者_JAVA技巧EY(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# Provides Triple DES as part of the core cryptography libraries

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


You really don't want to do this - you now have your key in two places, which makes it that much harder to secure. If you give one system permission to encrypt using a symmetric key generally the same system should be doing the decryption.

In any case you can't export symmetric encryption keys from SQL, and as you used a certificate to act as a source for the symmetric key, and didn't provide an IDENTITY_VALUE or KEY_SOURCE when creating the symmetric cert SQL used random values for generating the key, so you can't reproduce it in C# either.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜