Я не специалист по криптографии, но, как я понимаю, 3DES является симметричным алгоритмом шифрования, а это означает, что он не использует общедоступные/закрытые ключи.3DES с открытым ключом .cer?
Тем не менее, мне поручили шифрование данных с использованием открытого ключа (в частности, файла .CER). Если вы игнорируете всю симметричную/асимметричную диаграмму, я должен просто использовать ключевые данные из открытого ключа в качестве ключа TripleDES. Однако у меня возникли трудности с извлечением ключевых байтов из файла .CER. Это код, как он стоит ..
TripleDESCryptoServiceProvider cryptoProvider = new TripleDESCryptoServiceProvider();
X509Certificate2 cert = new X509Certificate2(@"c:\temp\whatever.cer");
cryptoProvider.Key = cert.PublicKey.Key.
Самый простой метод, который я могу найти, чтобы извлечь необработанные ключевые байты из сертификата ToXmlString (BOOL), а затем делать некоторые Hacky substringing на возвращаемую строку. Однако, это кажется настолько хакерским, что я чувствую, что мне не хватает более простого, более очевидного способа сделать это.
Я пропустил более простой способ использования файла .cer, чтобы предоставить ключевые данные классу C# C# C# C# C#, или взломать его из строки xml сертификата действительно лучший способ сделать это?
Не было бы лучше выяснить, что они _actually_ хотят, так как запрос криптографии с открытым ключом с симметричным алгоритмом явно не так ли? – 2008-09-23 14:50:34
Я не знаю о вас, Арахнид, но, по моему опыту, мне просто легче идти с потоком. Вопроситель, похоже, совершенно осознает несовместимость здесь, так почему бы просто не позволить ему делать то, что его попросили сделать? – 2008-09-23 15:15:47