Банк рефератов содержит более 364 тысяч рефератов, курсовых и дипломных работ, шпаргалок и докладов по различным дисциплинам: истории, психологии, экономике, менеджменту, философии, праву, экологии. А также изложения, сочинения по литературе, отчеты по практике, топики по английскому.
Полнотекстовый поиск
Всего работ:
364150
Теги названий
Разделы
Авиация и космонавтика (304)
Административное право (123)
Арбитражный процесс (23)
Архитектура (113)
Астрология (4)
Астрономия (4814)
Банковское дело (5227)
Безопасность жизнедеятельности (2616)
Биографии (3423)
Биология (4214)
Биология и химия (1518)
Биржевое дело (68)
Ботаника и сельское хоз-во (2836)
Бухгалтерский учет и аудит (8269)
Валютные отношения (50)
Ветеринария (50)
Военная кафедра (762)
ГДЗ (2)
География (5275)
Геодезия (30)
Геология (1222)
Геополитика (43)
Государство и право (20403)
Гражданское право и процесс (465)
Делопроизводство (19)
Деньги и кредит (108)
ЕГЭ (173)
Естествознание (96)
Журналистика (899)
ЗНО (54)
Зоология (34)
Издательское дело и полиграфия (476)
Инвестиции (106)
Иностранный язык (62792)
Информатика (3562)
Информатика, программирование (6444)
Исторические личности (2165)
История (21320)
История техники (766)
Кибернетика (64)
Коммуникации и связь (3145)
Компьютерные науки (60)
Косметология (17)
Краеведение и этнография (588)
Краткое содержание произведений (1000)
Криминалистика (106)
Криминология (48)
Криптология (3)
Кулинария (1167)
Культура и искусство (8485)
Культурология (537)
Литература : зарубежная (2044)
Литература и русский язык (11657)
Логика (532)
Логистика (21)
Маркетинг (7985)
Математика (3721)
Медицина, здоровье (10549)
Медицинские науки (88)
Международное публичное право (58)
Международное частное право (36)
Международные отношения (2257)
Менеджмент (12491)
Металлургия (91)
Москвоведение (797)
Музыка (1338)
Муниципальное право (24)
Налоги, налогообложение (214)
Наука и техника (1141)
Начертательная геометрия (3)
Оккультизм и уфология (8)
Остальные рефераты (21697)
Педагогика (7850)
Политология (3801)
Право (682)
Право, юриспруденция (2881)
Предпринимательство (475)
Прикладные науки (1)
Промышленность, производство (7100)
Психология (8694)
психология, педагогика (4121)
Радиоэлектроника (443)
Реклама (952)
Религия и мифология (2967)
Риторика (23)
Сексология (748)
Социология (4876)
Статистика (95)
Страхование (107)
Строительные науки (7)
Строительство (2004)
Схемотехника (15)
Таможенная система (663)
Теория государства и права (240)
Теория организации (39)
Теплотехника (25)
Технология (624)
Товароведение (16)
Транспорт (2652)
Трудовое право (136)
Туризм (90)
Уголовное право и процесс (406)
Управление (95)
Управленческие науки (24)
Физика (3463)
Физкультура и спорт (4482)
Философия (7216)
Финансовые науки (4592)
Финансы (5386)
Фотография (3)
Химия (2244)
Хозяйственное право (23)
Цифровые устройства (29)
Экологическое право (35)
Экология (4517)
Экономика (20645)
Экономико-математическое моделирование (666)
Экономическая география (119)
Экономическая теория (2573)
Этика (889)
Юриспруденция (288)
Языковедение (148)
Языкознание, филология (1140)

Лабораторная работа: Кодування файлу

Название: Кодування файлу
Раздел: Рефераты по информатике, программированию
Тип: лабораторная работа Добавлен 13:32:09 29 марта 2011 Похожие работы
Просмотров: 153 Комментариев: 2 Оценило: 0 человек Средний балл: 0 Оценка: неизвестно     Скачать

Міністерство освіти і науки України

Житомирський державний технологічний університет

Лабораторна робота №3

з курсу "Системне програмування"

на тему: "Кодування файлу"

м. Житомир

2011 р.


Содержание

1. Технічне завдання

2. Вимоги до програми

3. Код програми

Висновок

Список використаної літератури


1. Технічне завдання

Програма повинна забезпечувати шифруванні і дешифруванні будь-яких файлів по довільному алгоритму з використанням пароля.

2. Вимоги до програми

1. Назва програми: Encode.

2. Iнтерфейс - командний рядок, в який вводяться режим роботи програми, пароль, а також імена файлів.

encode </e | /d> <File_to_code> [distination_file] [/p=password] Наприклад: encode /e myfile.txt myfile.cod /p=mypassword, де /e або /d - ключ який визначає шифрування або дешифрування; myfile.txt - специфікація файлу який має бути зашифрований; myfile.cod - специфікація файлу в який має бути записано зашифровану послідовність; /p=mypassword - пароль для шифрування.

3. Режим шифрування - ключ /e, режим дешифрування - ключ /d.

4. При невірному завданні параметрів програма повинна виводити інформацію про вірне завдання параметрів. Наприклад: encode </e | /d> <File_to_code> <distination_file> [/p=password]

5. Зашифрований файл повинен складатися із заголовку і кодованих даних.

6. Заголовок повинен містити: сигнатуру виду файлу;номер версії програми;рядок Copyright, із якого зрозуміло, якою програмою файл був зашифрований; контрольну суму, що повинна використатися в алгоритмі дешифрування; імя вихідного файлу для його відновлення при дешифруванні іншу інформацію на розсуд розробника.

7. Необхідно рахувати контрольну суму, яка буде контролювати правильність дешифрування. Найпростішій метод підрахунку контрольної суми - це сумування всіх байтів файлу.

8. Для виконання кодування даних можна використати будь який алгоритм. Найпростішим може бути алгоритм Гамування (гаммирования).Базується він на бітовій операції XOR.

3. Код програми

програма кодування пароль гамування бітовий

#include <string.h>

#include <io.h>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <fcntl.h>

#include <sys\types.h>

#include <sys\stat.h>

#include <alloc.h>

#include <errno.h>

#define BUFSIZE 10000

char* buffer;

//структура для збереження заголовку

struct Header

{

char signat[3]; //сiгнатуру виду файлу;

int version; //номер версії програми;

char CopyRight[30]; //рядок Copyright

char filename[13];// імя вихідного файлу

unsigned long CRC; //контрольна сума

}header;

unsigned long Cryptographer(int count, char* pass, unsigned long conf, char* argv);

/***************************************************************************/

void main( int argc, char **argv )

{

int source, target;

int i;

int count;

unsigned long CRCM = 0;

clrscr();

//перевірка кількості аргументів командного рядка

if( argc != 5 )

{

printf( "\nUsage:"

"\tMYENCODE\n"

"\t[d:][\\path]\\oriuginal_file\n"

"\t[d:][\\path]\\target_file\n"

"\tpassword\n"

"\tidenteficator( \e or \d )\n" );

getch();

exit( 1 );

}

//відкриваємо вихідний файл

source = open( argv[ 1 ], O_BINARY | O_RDONLY );

//обробка помилки відкриття файлу

if( source == -1 )

{

printf( "\nOpen source file error: %d", errno );

getch();

exit( 2 );

}

//створюємо новий файл куди зпишим код

target = open( argv[ 2 ],

O_BINARY | O_WRONLY | O_CREAT | O_EXCL,

S_IREAD | S_IWRITE );

//перевіряємо на наявність одноіменного файлу

//та запитуємо користувача про необхідність його заміни новим

if( errno == EEXIST )

{

printf( "\nFile already exists. Overwrite? (Y/N)\n" );

i = getch();

if( ( i == 'y' ) || ( i == 'Y' ) )

target = open( argv[ 2 ],

O_BINARY | O_WRONLY | O_CREAT | O_TRUNC,

S_IREAD | S_IWRITE );

}

//обробка помилки створеннянового файлу

if( target == -1 )

{

printf( "\nOpen target file error: %d", errno );

getch();

exit( 2 );

}

//якщо потрібно декодувати файл,

//то зчитуємо із закодованого файлу заголовок

if( strcmp(argv[4],"/d") == 0)

read(source, &header, sizeof(struct Header));

//якщо потрібно кодувати файл,

//то записуємо заголовок до файлу з кодом

if( strcmp(argv[4], "/e") == 0 )

{

strcpy(header.signat,"AY");

header.version = 1;

strcpy(header.CopyRight,"Uncode");

header.CRC = 0;

strcpy(header.filename,argv[ 1 ]);

write(target, &header,sizeof(struct Header));

}

//виділяємо память для символьного масиву

count = BUFSIZE;

if( ( buffer = ( char* )malloc( count ) ) == NULL )

{

printf( "\nNot enough memory" );

getch();

exit( 3 );

}

while( !eof( source ) )

{

//зчитуємо блок символів з вихідного файлу

count = read( source, buffer, count )

if( count == -1 )

{

printf( "\nRead file error: %d", errno );

getch();

exit( 4 );

}

//кодуємо зчитані символи

CRCM += Cryptographer(count,argv[3],CRCM,argv[4]);

//записуємо блок закодованих символів до вхідного файлу

count = write( target, buffer, count )

if( count == -1 )

{

printf( "\nWrite file error: %d", errno );

getch();

exit( 5 );

}

}

//якщо потрібно кодувати файл,

//то перезаписуємо заголовок файлу з кодом виправляючи контрольну суму

if(strcmp(argv[4],"/e")==0)

{

header.CRC = CRCM;

lseek(target, 0L, 0);

write(target, &header, sizeof(struct Header));

}

//якщо потрібно декодувати файл,

if( strcmp(argv[4],"/d")==0)

//то порівнюємо контрольну суму

if(header.CRC!=CRCM)

printf("Access denied! Password error! Please try again");

//закрити файли та звільнити память

close( source );

close( target );

free( buffer );

getch();

}

/***************************************************************************/

/* Функція приймає:

розмір тексту

пароль

поточну конторльну суму

ключ

Функція повертає:

конторльну суму

*/

unsigned long Cryptographer(int zise, char* password, unsigned long conf, char* key)

{

int Len = strlen( password );

int askikod;

int cur = 0;

for( int a=0; a<zise; a++ )

{

if( cur > Len )

cur = 0;

//якщо варто декодувати

if(strcmp(key,"/d")==0)

{

buffer[a] ^= password[cur];

askikod = buffer[a];

conf += askikod;

}

//якщо варто закодувати

if(strcmp(key,"/e")==0)

{

askikod = buffer[a];

conf += askikod;

buffer[a] ^= password[cur];

}

cur++;

}

return (conf);

}

/***************************************************************************/


Висновок

Отже, на даній лабораторній роботі було реалізовано програму для кодування та декодування файлів. Утиліта забезпечує можливість закодувати та розкодувати файл (закодований цією ж програмою) за простим алгоритмом Гамування.

Програмний код може бути легко змінений з метою заміни алгоритму кодування\декодування. Для цього варто лише замінити функцію Cryptographer(), у якій буде реалізовано свій метод обробки даних.


Список використаної літератури

1. Касаткін А.І. Управление ресурсами. - Минск: Вышейшая школа, 1992.

2. Касаткін А.І. Системное программирование. - Минск: Вышейшая школа, 1991.

3. Власенко О.В., Данильченко О.М., Северин О.О. Системне прогрмамування. Курс лекцій. Частина 1. (бібліотека ЖІТІ)

Оценить/Добавить комментарий
Имя
Оценка
Комментарии:
Где скачать еще рефератов? Здесь: letsdoit777.blogspot.com
Евгений07:42:08 19 марта 2016
Кто еще хочет зарабатывать от 9000 рублей в день "Чистых Денег"? Узнайте как: business1777.blogspot.com ! Cпециально для студентов!
10:19:37 29 ноября 2015

Работы, похожие на Лабораторная работа: Кодування файлу

Назад
Меню
Главная
Рефераты
Благодарности
Опрос
Станете ли вы заказывать работу за деньги, если не найдете ее в Интернете?

Да, в любом случае.
Да, но только в случае крайней необходимости.
Возможно, в зависимости от цены.
Нет, напишу его сам.
Нет, забью.



Результаты(151228)
Комментарии (1843)
Copyright © 2005-2016 BestReferat.ru bestreferat@mail.ru       реклама на сайте

Рейтинг@Mail.ru