Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Цифровая грамотность. В 2 частях. Ч.2. Разработка консольных приложений на языке программирования C. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Индивидуальные задания по теме «Файлы в языке C»
Вари-
1.
Текстовый файл A содержит компоненты, которые являются целыми числа-
2.
Текстовый файл A содержит компоненты, которые являются целыми числа-
3.
Текстовый файл A содержит компоненты, которые являются целыми числа-
4.
Текстовый файл A содержит компоненты, которые являются целыми числа-
5.
Текстовый файл A содержит компоненты, которые являются целыми числа-
6.
Текстовый файл A содержит компоненты, которые являются целыми числа-
7.
Текстовый файл A содержит компоненты, которые являются целыми числа-
8.
Текстовый файл A содержит компоненты, которые являются целыми числа-
9.
Текстовый файл A содержит компоненты, которые являются целыми числа-
Таблица 22
ант
Задание
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B все положительные числа этого файла, кратные 3
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B наименьшее значение из компонентов этого файла с четными номерами
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B наибольшее значение из компонентов этого файла с четными номерами
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B наименьшее значение из компонентов этого файла с нечет­ными номерами
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B наибольшее значение из компонентов этого файла с нечет­ными номерами
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B все отрицательные числа этого файла, кратные 4
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B нули и их количество
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B кубы всех положительных чисел этого файла
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл B квадраты всех отрицательных чисел этого файла
91
Окончание табл. 22
10.
Текстовый файл A содержит компоненты, которые являются целыми числа-
11.
Текстовый файл A содержит компоненты, которые являются целыми числа-
12.
Текстовый файл A содержит компоненты, которые являются целыми числа-
Вари-
ант
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл тическое
ми, разделенными пробелами. Напишите программу, записывающую в тек­стовый файл тельное число из этого файла
ми, разделенными пробелами. Напишите программу, записывающую в тек- стовый файл
B все положительные числа этого файла и их среднее арифме-
B минимальное положительное число и максимальное отрица-
B числа, равные –1, и их количество

Контрольные вопросы

1. Как файл описан в программе?
Задание
2. Какая команда посимвольно считывает данные из файла?
3. Какая команда построчно считывает данные из файла?
4. Что понимается под двоичным файлом?
5. Какие команды в языке С работают с двоичными файлами?
ТЕМА 2.4. СОЗДАНИЕ КОНСОЛЬНОГО ПРИЛОЖЕНИЯ
С ЭЛЕМЕНТАМИ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ
Для того чтобы обезопасить данные в разрабатываемом приложении, необходимо запрограммировать защиту данных, включая базовый контроль доступа к программе, в которой хранится и обрабатывается информация.
Базовый контроль доступа в систему можно сделать на логическом уровне, а именно – организовать доступ в систему по паролю для несколь- ких категорий возможных пользователей этой системы. Безопасность паролей начинается с создания надежного пароля.
92
Рассмотрим требования к формированию надежного пароля2.
1. Пароль должен содержать не менее 8 символов, но лучше 14 или
больше.
2. Пароль должен состоять из комбинации прописных и строчных
букв, цифр, пробелов и специальных символов. Например: pMQSmu@$l1
3. Пароль не должен содержать: – Личную информацию, которую легко узнать. Например: имя,
фамилию, дату рождения и т. д.
– Очевидные и простые слова, фразы, устойчивые выражения и набо-
ры символов, которые легко подобрать. Например: password, parol, abcd, qwerty или asdfg, 1234567.
4. Должен значительно отличаться от ваших предыдущих паролей.
5. Пароль рекомендуется менять каждые 3 месяца.
6. Вам легко запомнить, но трудно догадаться другим. Попробуйте ис-
пользовать запоминающуюся фразу, например: «6MonkeysRLooking^:))».
Примечание. Если не хотите придумывать сами, Microsoft Edge может
создавать и запоминать для вас надежные уникальные пароли3.
Создав надежный пароль, следуйте этим рекомендациям, чтобы обес-
печить его безопасность:
Не сообщайте пароль никому. Даже другу или члену семьи. Никогда не отправляйте пароль по электронной почте, в мгновенных
сообщениях или любым другим способом связи, который не является надежно безопасным.
2
Как составить надежный пароль. – URL: https://support.kaspersky.ru/common/windows/3730.
3
Use Password Generator to create more secure passwords in Microsoft Edge. – URL:
https://support.microsoft.com/en-us/topic/use-password-generator-to-create-more-secure-passwords-in-microsoft-edge­e9247e35-684b-4114-bb5e-fdea3e4ae3ff.
93
Используйте уникальный пароль для каждого сайта. Если мошенни-
ки украдут информацию о вашей учетной записи с одного сайта, они по­пытаются использовать эти учетные данные на сотнях других известных веб-сайтов, таких как банковские услуги, социальные сети или интернет­магазины, надеясь, что вы повторно использовали пароль в другом ме­сте. Это называется «атака с заполнением учетных данных», и это очень распространено.
Если вы не хотите запоминать несколько паролей, рассмотрите воз-
можность использования менеджера паролей.
На физическом уровне защиту данных в разрабатываемом приложе- нии можно реализовать с использованием криптографии.
Криптография (термин происходит от греческого слова kryptos, что означает «скрытый») – это наука о методах обеспечения конфиденциаль­ности, целостности данных, аутентификации, шифрования.
В компьютерных науках криптография относится к методам защиты информации и технологий связи, базирующимся на математических кон­цепциях и наборе основанных на правилах вычислений, называемых алго­ритмами, для преобразования сообщений способами, которые трудно рас­шифровать. Эти детерминированные алгоритмы используются для генера­ции криптографических ключей, цифровой подписи, проверки для защиты конфиденциальности данных, просмотра web-страниц в интернете и конфи­денциальных сообщений, таких как транзакции по кредитным картам, элек­тронная почта и др. Известно, что древние египтяне использовали эти мето­ды в сложных иероглифах, а римскому императору Юлию Цезарю приписы­вают использование одного из первых современных шифров.
Существует несколько типов криптографии, каждая со своими уни­кальными функциями и приложениями. Некоторые из наиболее распро­страненных типов криптографии включают в себя:
94
– Криптография с симметричным ключом предполагает использо-
вание одного ключа для шифрования и дешифрования данных. И отправи­тель, и получатель используют один и тот же ключ, который должен хра­ниться в секрете для обеспечения безопасности связи.
– Криптография с асимметричным ключом, также известная как
криптография с открытым ключом, использует пару ключей – открытый ключ и закрытый ключ – для шифрования и расшифровки данных. Открытый ключ доступен любому, а закрытый ключ хранится в секрете владельцем.
– Хеш-функции – это математический алгоритм, который преобразу-
ет данные любого размера в выходные данные фиксированного размера. Хеш-функции часто используются для проверки целостности данных и гарантии того, что они не были подделаны.
Криптография имеет широкий спектр приложений в современной свя-
зи, в том числе:
• Безопасные онлайн-транзакции. Криптография используется для
защиты онлайн-транзакций, таких как онлайн-банкинг и электронная коммерция, путем шифрования конфиденциальных данных и защиты их от несанкционированного доступа.
• Цифровые подписи используются для проверки подлинности и це-
лостности цифровых документов и гарантии того, что они не были подде­ланы.
• Защита паролем: пароли часто шифруются с использованием крип-
тографических алгоритмов, чтобы защитить их от кражи или перехвата.
Введение в базовое шифрование данных
В криптографии шифр Цезаря, также известный как шифр сдвига,
код Цезаря или сдвиг Цезаря, является одним из самых простых и широ-
ко известных методов шифрования.
Шифр Цезаря – это простой метод шифрования, который Юлий Це-
зарь использовал для отправки секретных сообщений своим союзникам.
95
Он работает путем сдвига букв в текстовом сообщении на определенное количество позиций, известное как «сдвиг» или «ключ». Это тип шифра замены, в котором каждая буква в открытом тексте заменяется буквой на некоторое фиксированное количество позиций в алфавите. Например, при смещении влево на 3 D будет заменено на A, E станет B и т. д. Метод назван в честь Юлия Цезаря, который использовал его в своей личной пе­реписке. Шаг шифрования, выполняемый шифром Цезаря, часто включа­ется как часть более сложных схем, таких как шифр Виженера, и до сих пор имеет современное применение в системе ROT134.
Особенности шифра Цезаря.
1. Шифр замены: шифр Цезаря – это тип шифра замены, в котором
каждая буква в открытом тексте заменяется буквой на некоторое фикси­рованное количество позиций вниз по алфавиту.
2. Фиксированный ключ: шифр Цезаря использует фиксированный ключ, представляющий собой количество позиций, на которое сдвигаются буквы. Этот ключ известен как отправителю, так и получателю.
3. Симметричное шифрование: это метод симметричного шифрова- ния, означающий, что один и тот же ключ используется как для шифрова­ния, так и для дешифрования.
4. Ограниченное пространство ключей: шифр Цезаря имеет очень огра- ниченное пространство ключей, например, в английском языке – 26 возмож­ных ключей, т. к. в английском алфавите всего 26 букв.
5. Уязвимость к атакам «методом грубой силы»: шифр Цезаря уяз- вим для таких атак, потому что в каждом языке существует ограниченное количество возможных ключей, и их все можно попробовать.
6. Простота реализации: шифр Цезаря очень прост в реализации и требует только простых арифметических операций, что делает его попу­лярным выбором для простых задач шифрования.
вой после нее в латинском алфавите. ROT13 – это частный случай шифра Цезаря.
4
ROT13 («повернуть на 13 позиций») – простой шифр с заменой букв, который заменяет букву 13-й бук-
96
Правила шифра Цезаря:
1. Выберите число от 1 до 25. Это будет значение сдвига.
2. Запишите буквы алфавита по порядку, от А до Я.
3. Сдвиньте каждую букву алфавита на выбранное значение сдвига.
Например, если значение сдвига равно 3, A станет D, B станет E, C станет F и так далее.
4. Зашифруйте свое сообщение, заменив каждую букву соответству-
ющей смещенной буквой.
5. Чтобы расшифровать сообщение, просто выполните обратный про-
цесс, сдвинув каждую букву назад на ту же величину.
Алгоритм шифрования Цезаря
Вход:
1. Выберите значение сдвига от 1 до 25.
2. Запишите алфавит в порядке от A до Z.
3. Создайте новый алфавит, сдвинув каждую букву исходного алфа-
вита на значение сдвига. Например, если значение сдвига равно 3, новый алфавит будет таким:
ABCDEFGHIJKLMNOPQRSTUVWXYZ DEFGHIJKLMNOPQRSTUVWXYZABC
4. Замените каждую букву сообщения соответствующей буквой из но-
вого алфавита. Например, если значение сдвига равно 3, слово «hello» станет «khoor».
5. Чтобы расшифровать сообщение, сдвиньте каждую букву назад на одинаковую величину. Например, если значение сдвига равно 3, зашифро­ванное сообщение «khoor» станет «hello».
Процедура:
• Перемещайтесь по заданному тексту по одному символу за раз.
97
• Каждый символ преобразуйте в соответствии с правилом, в зависи-
мости от того, шифруем или расшифровываем текст.
• Верните новую сгенерированную строку.
Программа, которая получает текст (строку) и значение сдвига (целое
число) и возвращает зашифрованный текст.

Контрольные вопросы

1. Каким образом можно организовать базовую защиту данных в раз-
рабатываемом приложении?
2. Сформулируйте правила формирования надежного пароля.
3. Что такое криптография?
4. Что такое шифр Цезаря?
5. В чем заключаются особенности шифра Цезаря?
Лабораторная работа № 11
ОСНОВЫ ПРОГРАММИРОВАНИЯ ЗАЩИЩЕННОГО
КОНСОЛЬНОГО ПРИЛОЖЕНИЯ

Задание 1.

Изучите и выполните пример 24, в котором продемонстрировано ко-
дирование и декодирование данных шифром Цезаря. Операции кодирова­ния и декодирования оформлены в виде пользовательских функций encrypt (int n) и decipher (int n) соответственно. Перед основной прог­раммой объявлены прототипы этих функций.
После выполнения примера необходимо модифицировать программ-
ный код: реализовать кодирование и декодирование информации, исполь­зуя технологию модульного программирования (раздел 2, тема 2.2).
98

Программный код:

99

Задание 2.

Изучите пример 25, в котором продемонстрирована организация ме-
ню в консольном приложении. Реализуйте меню консольного приложе­ния, дописав соответствующие функции для работы с файлами.

Программный код:

100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]