|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.09.2022, 04:17 | #1 |
Новичок
Джуниор
Регистрация: 29.12.2021
Сообщений: 2
|
с++. шифрование файла с помощью xor
задание и код прикреплены ниже. не совсем понятны [1],[2],[3],[0] при аргументе argv. прошу объяснить
Шифрование/дешифрование осуществляется группами по 8 бит (1 байт). Ключ также имеет размер 1 байт. Код:
Последний раз редактировалось Myrov; 30.09.2022 в 07:27. |
30.09.2022, 07:30 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
|
27.10.2022, 20:54 | #3 |
Регистрация: 21.10.2022
Сообщений: 8
|
Myrov, argv[0] - это имя самой программы. Далее в данном случае
argv[1] - строка, имя входного файла argv[2] - строка, имя выходного файла argv[3][0] - строка или один символ (байт), даже если будет строка, то все равно берется из нее только первый байт. Собственно это и есть ключ Если входной файл (argv[1]) нешифрованный, то программа его зашифрует. Если наоборот на входе шифрованный файл - расшифрует Запустить программу из командной строки можно так: Находясь в папке с собранным exe файлом, пусть он называется Crypter.exe Crypter.exe infile.txt outfile.txt k k - ключ, берется числовое значение символа 'k' по ASCII. Можно заменить его на любой другой символ. Чтобы вместо символа можно было вводить само число от 0 до 255, нужно заменить ch^= argv[3][0] на ch^= atoi(argv[3]), тогда можно будет вызывать программу так: Crypter.exe infile.txt outfile.txt 155 infile.txt должен существовать и лежать в папке вместе с Crypter.exe, outfile.txt программа создаст в процессе своей работы |
27.10.2022, 23:53 | #4 | |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Цитата:
Это лишние действия в огромных количествах. К тому же стоит проверить ключ на валидность (!0) и на правильность (число может быть переведено из заданной строки). Это стоит добавить отдельными проверками, а не дописать как часть подпрограммы. Код:
|
|
28.10.2022, 19:10 | #5 |
Регистрация: 21.10.2022
Сообщений: 8
|
macomics, благодарю за дополнение. А откуда берется errno?
|
28.10.2022, 21:41 | #6 |
Участник клуба
Регистрация: 17.04.2022
Сообщений: 1,833
|
Это переменная типа той, что организует Windows с доступом через GetLastError. В нее функции от C/C++ выставляют статус ошибки.
https://en.cppreference.com/w/cpp/error/errno Последний раз редактировалось macomics; 28.10.2022 в 21:44. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифрование с помощью PGPSDK | Rustam88_01 | Фриланс | 0 | 06.02.2017 09:18 |
Шифрование с помощью шифрорешетки, как повернуть решетку? | Manta4ka | Python | 2 | 20.12.2016 21:33 |
Шифрование файла с помощью пароля | Hallo | Обсуждение статей | 3 | 09.02.2007 10:50 |