Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как зашифровать / дешифровать лубой файл (рисунок, приложение, тхт) используя пароль

1.9K
02 мая 2007 года
tva94
115 / / 01.05.2007
Пожалуйста, помогите: мне надо зашифровать, а потом дешифровать файл [SIZE="5"]ЛЮБОГО ТИПА[/SIZE], а ещё лутше: папку. Главное: использовать пароль для шифровки / лешифровки, и не использовать сертефикаты пользователя.
63
02 мая 2007 года
Zorkus
2.6K / / 04.11.2006
Используя типы из System.Security.Cryptography.
1.9K
04 мая 2007 года
tva94
115 / / 01.05.2007
А можно поподробнее? И работающий проэкт (исходник). И заранее благодарен!:)
273
05 мая 2007 года
3A3-968M
1.2K / / 22.12.2005
Цитата: tva94
А можно поподробнее? И работающий проэкт (исходник). И заранее благодарен!:)


Да вот простой пример, шифруем файл при помощи Triple DES:

Код:
[SIZE=2][COLOR=#008080][FONT=Courier New]TripleDESCryptoServiceProvider[/FONT][/COLOR][/SIZE][FONT=Courier New][SIZE=2] des = [/SIZE][SIZE=2][COLOR=#0000ff]new [/COLOR][/SIZE][SIZE=2][COLOR=#008080]TripleDESCryptoServiceProvider[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New]();[/FONT]
[FONT=Courier New]des.Key = [/FONT][/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]new [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]byte[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New][] { 0xFA, 0x11, 0x45, 0x01, 0x88, 0xA9, 0x56, 0x00, 0xCD };[/FONT]
[FONT=Courier New]des.GenerateIV();[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]byte[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New][] initVector = des.IV;[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#008080]FileStream[/COLOR][/SIZE][SIZE=2] sourceFile=[/SIZE][SIZE=2][COLOR=#0000ff]new [/COLOR][/SIZE][SIZE=2][COLOR=#008080]FileStream[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#800000]"Source.txt"[/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#008080]FileMode[/COLOR][/SIZE][SIZE=2].Open, [/SIZE][SIZE=2][COLOR=#008080]FileAccess[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].Read))[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#008080]FileStream[/COLOR][/SIZE][SIZE=2] destFile = [/SIZE][SIZE=2][COLOR=#0000ff]new [/COLOR][/SIZE][SIZE=2][COLOR=#008080]FileStream[/COLOR][/SIZE][SIZE=2]([/SIZE][SIZE=2][COLOR=#800000]"Dest.txt"[/COLOR][/SIZE][SIZE=2], [/SIZE][SIZE=2][COLOR=#008080]FileMode[/COLOR][/SIZE][SIZE=2].Create, [/SIZE][SIZE=2][COLOR=#008080]FileAccess[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].Write))[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]using[/COLOR][/SIZE][SIZE=2] ([/SIZE][SIZE=2][COLOR=#008080]CryptoStream[/COLOR][/SIZE][SIZE=2] encryptor = [/SIZE][SIZE=2][COLOR=#0000ff]new [/COLOR][/SIZE][SIZE=2][COLOR=#008080]CryptoStream[/COLOR][/SIZE][SIZE=2](destFile, des.CreateEncryptor(), [/SIZE][SIZE=2][COLOR=#008080]CryptoStreamMode[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New].Write))[/FONT]
[FONT=Courier New]{[/FONT]
[/SIZE][FONT=Courier New][SIZE=2][COLOR=#0000ff]  byte[/COLOR][/SIZE][SIZE=2][] buffer = [/SIZE][SIZE=2][COLOR=#0000ff]new [/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]byte[/COLOR][/SIZE][/FONT][SIZE=2][FONT=Courier New][sourceFile.Length];[/FONT]
[FONT=Courier New]  sourceFile.Read(buffer, 0, buffer.Length);[/FONT]
[FONT=Courier New]  encryptor.Write(buffer, 0, buffer.Length);[/FONT]
[FONT=Courier New]}[/FONT]
[/SIZE]

Единственный момент - вектор инициализации шифратора должен быть одинаковым при всех операциях шифрования/дешифрования, поэтому сгенерируй его один раз (как в примере), выведи в отладке его значение и замени потом GenerateIV на постянный вектор инициализации.
1.9K
07 мая 2007 года
tva94
115 / / 01.05.2007
Файл шифронуло, а мне и дешифронуть его надо...
273
10 мая 2007 года
3A3-968M
1.2K / / 22.12.2005
Ты пошутил???? ... вместо CreateEncryptor вызвать CreateDecryptor надо и фсё
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог