Шифрование файла методом xor (исключающего или)
Категория: .NET
2011-09-04 22:38:28
Чтение файлов по байтно, кодирование и сохранение результата.
code: #csharp
- using (var fs = File.Open(@"FILE_NAME", FileMode.Open, FileAccess.ReadWrite)) {
- // Буффер размером 4Кб
- var buff = new byte[4096];
- // Кол-во прочитанных байт
- int readed = 0;
- while (fs.Position < fs.Length) {
- // Читаем
- readed = fs.Read(buff, 0, buff.Length);
- /* Изменяем исходные данные (байты)
- */
- for (int i = 0; i < readed; i++)
- buff[i] ^= 128; // xor 128
- // Сдвигаемся в начало прочитанного
- fs.Position -= readed;
- // Заменяем исходные данные новыми
- fs.Write(buff, 0, readed);
- }
- fs.Flush();
- }
Чтобы вернуть исходный файл (после применения этого кода), пройдитесь по нему 'алгоритмом' еще раз.
Поделиться: