Криптография в C#
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Криптография в 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(); // естественно, здесь должна быть возможность подставить любой другой доступный алгоритм
int keySize = alg.LegalKeySizes[0].MinSize;
alg.Key = pdb.GetBytes(keySize); // вот здесь вылетает с ошибкой "Specified key is not a valid size for this algorithm."
|
|
|
RE: Криптография в C# - 2008-11-25 16:02:09.426666
|
|
|
Denaturat
Сообщений: 1741
Оценки: 453
Присоединился: 2008-10-27 20:50:06.380000
|
а найти в исходниках что приводит к такой ошибке не судьба? в принципе оно тебе чистым английским языком честно говорит в чём проблема: размер ключа не подходит. что тебе ещё рассказать без исходников алгоритма шифрования?
|
|
|
RE: Криптография в C# - 2008-11-25 16:19:46.216666
|
|
|
Unconnected
Сообщений: 158
Оценки: 0
Присоединился: 2008-09-11 22:02:01.983333
|
2kreol, я так понимаю, тебе нужно шифрование алгоритмом DES? Тогда могу дать прогу, реализующую это(и ещё несколоько алгоритмов), но она на pascal.
|
|
|
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;" нужного эффекта не даёт.
|
|
|
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 & несколько алгоритмов в одной программе? Тогда давай) Вообще я уже на Джаве написал, но любопытство мучает, как же это в других языках делается)
|
|
|
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
|
|
|
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>>3); //получаем ключ из пароля
alg.Mode=CipherMode.CBC; //используем режим CBC
alg.IV=new Byte[alg.BlockSize>>3]; //и пустой инициализационный вектор И нафига там сдвиги, спрашивается? Всё остальное не по теме. За общую информацию - спасибо, но ответа на вопрос я так и не нашёл.
|
|
|
RE: Криптография в C# - 2008-11-28 16:42:18.750000
|
|
|
Unconnected
Сообщений: 158
Оценки: 0
Присоединился: 2008-09-11 22:02:01.983333
|
kreol, отправил в личку. А вообще сейчас вместо DES есть TripleDES.
|
|
|
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 тоже уже устарел.
|
|
|
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
|
|
|
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] Кстати ктонибудь знает какой функцией можно вызвать список криптопровайдеров установленных в системе?
|
|
|
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
|
|
|
RE: Криптография в C# - 2008-11-30 18:28:54.266666
|
|
|
mediv63
Сообщений: 16
Оценки: 0
Присоединился: 2008-11-20 14:57:46.886666
|
Спасибо за ссылку
|
|
|
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 байтах)
|
|
|
|
|