Шифрование данных в C#
От: Павел Киселев  
Дата: 23.12.02 08:48
Оценка:
Всем доброго дня!
Помогите решить следующую проблему: использую для шифрования DESCryptoServiceProvider(симметричный алгоритм)


private byte[] m_Key = {0x01, 0x02,...} Длина ключа 64. (Столько вроде должно быть)
private byte[] m_IV = {0x01, 0x02,...} Длина тоже 64.



...
byte[] bArr = new byte[100];

FileStream oFileStream = new FileStream("a.dat",FileMode.OpenOrCreate,FileAccess.Write);
DESCryptoServiceProvider oCryptoServiceProvider = new DESCryptoServiceProvider();
ICryptoTransform oCryptoTransform = oCryptoServiceProvider.CreateEncryptor(m_Key,m_IV);

Здесь в конструкторе exception: не верно задан ключ (точнее его длина)

CryptoStream oCryptoStream = new CryptoStream(oFileStream,oCryptoTransform,CryptoStreamMode.Write);
oCryptoStream.Write(bArr,0,100);

...


Если в конструкторе не указывать ключ и иницирующий массив, то запись в файл проходит нормально, а вот считать ничего не получается.(Массив пустой).

Re: Шифрование данных в C#
От: Андрей Россия  
Дата: 23.12.02 08:52
Оценка: 2 (1)
Здравствуйте, Павел Киселев, Вы писали:

skip

Почитай здесь
Автор(ы): Алексей Остапенко
Дата: 09.10.2002
Статья посвящена аспектам использования CryptoAPI и криптографических классов .NET CLR в прикладных программах. Приведены краткие пояснения по сущности алгоритмов шифрования и хеширования. Статья содержит примеры использования алгоритмов 3DES, RSA, MD5, SHA
. Может, найдешь чего-нибудь — в .NET-реализации много глюков есть — они в этой статье описаны
Re: Шифрование данных в C#
От: Lexey Россия  
Дата: 23.12.02 08:59
Оценка: 3 (1)
Здравствуйте, Павел Киселев, Вы писали:

ПК>Всем доброго дня!

ПК>Помогите решить следующую проблему: использую для шифрования DESCryptoServiceProvider(симметричный алгоритм)

ПК>

ПК>private byte[] m_Key = {0x01, 0x02,...} Длина ключа 64. (Столько вроде должно быть)
ПК>private byte[] m_IV = {0x01, 0x02,...} Длина тоже 64.

64 чего? У DES длина ключа — 64 бита. Причем последний байт является контрольным для первых 7-ми, т.е. произвольные 8 байт ты подсунуть в качестве ключа не сможешь.
Кроме того, у DES есть наборы слабых ключей, которыми лучше не пользоваться. Отсюда мораль — не замимайся ерундой и предоставь генерацию ключа криптопровайдеру. Инициализационный вектор можешь генерировать сам.
Re[2]: Шифрование данных в C#
От: Павел Киселев  
Дата: 23.12.02 09:18
Оценка:
Здравствуйте, Андрей.

Спасибо, только не очень помогла информация.
Re[2]: Шифрование данных в C#
От: Павел Киселев  
Дата: 23.12.02 09:21
Оценка:
Здравствуйте, Lexey.

Спасибо.
Re[3]: Шифрование данных в C#
От: Андрей Россия  
Дата: 23.12.02 09:21
Оценка:
Здравствуйте, Павел Киселев, Вы писали:

skip

ПК>Спасибо, только не очень помогла информация.


Ну, автор-то информации, я думаю, помог
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.