Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Криптография в C#

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Криптография в C#
Имя
Сообщение << Старые топики   Новые топики >>
Криптография в C# - 2008-11-25 01:53:28.783333   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
А разбирается тут кто-нибудь в теме? Нужно зашифровать файл, проблема возникает во время присваивания алгоритму ключа:

PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, null); SymmetricAlgorithm alg; alg = DESCryptoServiceProvider.Create();&nbsp;&nbsp; // естественно, здесь должна быть возможность подставить любой другой доступный алгоритм int keySize = alg.LegalKeySizes[0].MinSize; alg.Key = pdb.GetBytes(keySize);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // вот здесь вылетает с ошибкой "Specified key is not a valid size for this algorithm."
Post #: 1
RE: Криптография в C# - 2008-11-25 16:02:09.426666   
Denaturat

Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
а найти в исходниках что приводит к такой ошибке не судьба? в принципе оно тебе чистым английским языком честно говорит в чём проблема: размер ключа не подходит. что тебе ещё рассказать без исходников алгоритма шифрования?
Post #: 2
RE: Криптография в C# - 2008-11-25 16:19:46.216666   
Unconnected

Сообщений: 158
Оценки: 0
Присоединился: 2008-09-11 22:02:01.983333
2kreol, я так понимаю, тебе нужно шифрование алгоритмом DES? Тогда могу дать прогу, реализующую это(и ещё несколоько алгоритмов), но она на pascal.
Post #: 3
RE: Криптография в C# - 2008-11-25 19:41:37.073333   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
quote:

ORIGINAL: Denaturat

а найти в исходниках что приводит к такой ошибке не судьба? в принципе оно тебе чистым английским языком честно говорит в чём проблема: размер ключа не подходит. что тебе ещё рассказать без исходников алгоритма шифрования?

В данном случае алгоритм DES - это из имени класса понятно. Но задача состоит в том, чтобы выбирать на ходу нужный алгоритм. А для каждого алгоритма нужна своя пара Key и IV со своей длиной ключа (для DES в pdb.GetBytes() изначально стояло 16 и 8, но для других алгоритмов это не срабатывает). Так вот вопрос именно в том, как грамотно получить разрешённую длину ключа, потому что "int keySize = alg.LegalKeySizes[0].MinSize;" нужного эффекта не даёт.
Post #: 4
RE: Криптография в C# - 2008-11-25 19:44:28.213333   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
quote:

ORIGINAL: Unconnected

2kreol, я так понимаю, тебе нужно шифрование алгоритмом DES? Тогда могу дать прогу, реализующую это(и ещё несколоько алгоритмов), но она на pascal.

Delphi & CryptoAPI & несколько алгоритмов в одной программе? Тогда давай)
Вообще я уже на Джаве написал, но любопытство мучает, как же это в других языках делается)
Post #: 5
RE: Криптография в C# - 2008-11-25 20:02:43.550000   
_SaZ_

Сообщений: 4329
Оценки: 398
Присоединился: 2008-01-30 02:18:05.553333
http://rsdn.ru/summary/825.xml
Post #: 6
RE: Криптография в C# - 2008-11-26 23:42:01.413333   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
quote:

ORIGINAL: _SaZ_

http://rsdn.ru/summary/825.xml

Мда, в последней статье по симметричным алгоритмам в .NET 3 абзаца и пример кода:
alg.Key=pdb.GetBytes(keylen&gt;&gt;3); //получаем ключ из пароля alg.Mode=CipherMode.CBC; //используем режим CBC alg.IV=new Byte[alg.BlockSize&gt;&gt;3]; //и пустой инициализационный вектор И нафига там сдвиги, спрашивается? Всё остальное не по теме. За общую информацию - спасибо, но ответа на вопрос я так и не нашёл.
Post #: 7
RE: Криптография в C# - 2008-11-28 16:42:18.750000   
Unconnected

Сообщений: 158
Оценки: 0
Присоединился: 2008-09-11 22:02:01.983333
kreol, отправил в личку. А вообще сейчас вместо DES есть TripleDES.
Post #: 8
RE: Криптография в C# - 2008-11-28 20:08:54.893333   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
quote:

ORIGINAL: Unconnected

kreol, отправил в личку. А вообще сейчас вместо DES есть TripleDES.

Спасибо, конечно, но это всё ещё не то, что мне нужно.
А вместо DES, кстати говоря, сейчас AES используется, 3DES тоже уже устарел.
Post #: 9
RE: Криптография в C# - 2008-11-28 20:13:27.503333   
Unconnected

Сообщений: 158
Оценки: 0
Присоединился: 2008-09-11 22:02:01.983333
quote:

quote:

ORIGINAL: Unconnected

kreol, отправил в личку. А вообще сейчас вместо DES есть TripleDES.

Спасибо, конечно, но это всё ещё не то, что мне нужно.
А вместо DES, кстати говоря, сейчас AES используется, 3DES тоже уже устарел.


Но BlowFish всё равно рулит:D
Post #: 10
RE: Криптография в C# - 2008-11-29 15:10:09.663333   
mediv63

Сообщений: 16
Оценки: 0
Присоединился: 2008-11-20 14:57:46.886666
AES на С++ есть, если надо пиши на [email=mediv63@mail.ru]mediv63@mail.ru[/email]
Кстати ктонибудь знает какой функцией можно вызвать список криптопровайдеров установленных в системе?
Post #: 11
RE: Криптография в C# - 2008-11-29 16:12:32.136666   
kreol

Сообщений: 823
Оценки: 0
Присоединился: 2007-03-08 03:13:06.876666
quote:

ORIGINAL: mediv63

AES на С++ есть, если надо пиши на [email=mediv63@mail.ru]mediv63@mail.ru[/email]
Кстати ктонибудь знает какой функцией можно вызвать список криптопровайдеров установленных в системе?

Не, один алгоритм не нужен.
Про установленные криптопровайдеры:
http://msdn.microsoft.com/en-us/library/aa379929.aspx
Post #: 12
RE: Криптография в C# - 2008-11-30 18:28:54.266666   
mediv63

Сообщений: 16
Оценки: 0
Присоединился: 2008-11-20 14:57:46.886666
Спасибо за ссылку
Post #: 13
RE: Криптография в C# - 2008-12-25 10:20:23.903333   
CATS

Сообщений: 31
Оценки: 0
Присоединился: 2008-12-09 09:36:38
только вчера такая проблема была. справка нам говорит (MSDN тобишь), что для DES нужен ключик в 8 байт! TripleDES же - 24 байта. Именно 8-байтовые работают (проверено), но вот кратные 8 - нет :(
зы. не забудь проверить на юникод свой ключик (не забывай, что в нем символ хранится в 2 байтах)
Post #: 14
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Криптография в C#







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.