T-sql TRIPLE_DES ENCRYPTION - теперь мне нужно расшифровать выходной текстовый файл в c # - PullRequest
0 голосов
/ 07 сентября 2011

Как мне расшифровать тройное шифрование файла в c #. Какое пространство имен?

Это выходной файл:

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'

Ответы [ 2 ]

1 голос
/ 07 сентября 2011

Вы действительно не хотите этого делать - теперь у вас есть ключ в двух местах, что делает его намного сложнее защитить.Если вы даете одной системе разрешение на шифрование с использованием симметричного ключа, то, как правило, эта же система должна выполнять дешифрование.

В любом случае вы не можете экспортировать симметричные ключи шифрования из SQL и использовать сертификат для действия.в качестве источника для симметричного ключа и не предоставил IDENTITY_VALUE или KEY_SOURCE при создании симметричного сертификата SQL, использовавшего случайные значения для генерации ключа, поэтому вы также не можете воспроизвести его в C #.

1 голос
/ 07 сентября 2011

C # Обеспечивает Triple DES как часть основных библиотек криптографии

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...