Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 34

Не читается файл после записи зашифрованного текста

05.06.2017, 22:25. Показов 908. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Зравствуйте, форумчане.
Собственно сабж. Курсовая по шифрованию в с++. Текст читаю из файла, побитово складываю с ключом, организую битовый циклический сдвиг в условиях 16 битной кодировки. Записываю в файл. Пытаюсь посмотреть, что вышло. Файл не может быть открыт из-за проблем с содержимым. Я попадаю в пустые поля unicode??? или принципиально что то не так делаю???

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void Shifr::do_shifr(QString str_file,QString str_dir)
{    QString data_shifr;
 
        QFile filetext (str_file);
        if (filetext.open(QIODevice::ReadOnly))
    {     QString data=filetext.readAll();
            int n=data.size();
           for (int i=0;i<=n;i++)
           {
               symbol_bin=data[i].unicode();
               symbol_shifr_uni=(symbol_bin^key_sum);
               symbol_shifr = ((symbol_shifr_uni << key_move) | (symbol_shifr_uni >> (16 - key_move)));
               QString temp=QChar(symbol_shifr);
               data_shifr.append(temp);
           }
        }
        filetext.close();
         QString full=str_dir.append("/shifrtext.docx");
         QFile fileout_shifr (full);
           if (fileout_shifr.open(QIODevice::Append))
           {       QTextStream stream(&fileout_shifr);
                    stream <<data_shifr;
           }
           fileout_shifr.close();
 
}
Добавлено через 17 минут
Если открываю файл в других текстовых редакторах, вижу знаки вопроса и иногда какие-нибудь буквы. Это вообщем то неплохо, но вопрос в том, когда я возьмусь за расшифровку этого файла, коды unicode считанных знаков вопроса будут соответствовать тем, что я туда записала???
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.06.2017, 22:25
Ответы с готовыми решениями:

Как сделать вывод зашифрованного текста в один файл и расшифрованного текста в другой файл?
Нужно вывести текст зашифрованного сообщения в один файл и расшифрованное сообщение во второй файл var st,kl,kk:string; t,tt:array...

Файл: Почему после записи текста в файл, внутри добавляются какие-то буквы, которые не вводились? Как от них избаваться?
Почему после записи текста в файл, внутри добавляются какие-то буквы, которые не вводились(В моем случае это буквы М)? И как их убрать? ...

Rijndael - после расшифровки не читается файл
после кодирования и перекодирования файл не читается. Прошу помощи в поиске ошибки. Код программы using System; using...

6
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
05.06.2017, 22:30
Цитата Сообщение от Auren Посмотреть сообщение
коды unicode считанных знаков вопроса будут соответствовать тем
должны, теоретически. Правда если в исходном файле было нечётное число байтов, может не сработать.
Цитата Сообщение от Auren Посмотреть сообщение
Файл не может быть открыт из-за проблем с содержимым
потому что зашифрован весь файл, а не текст файла.
0
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,278
05.06.2017, 22:48
Цитата Сообщение от Auren Посмотреть сообщение
когда я возьмусь за расшифровку этого файла, коды unicode считанных знаков вопроса будут соответствовать тем, что я туда записала???
Файл из байтов состоит, и шифровать нужно побайтово, и расшифровывать так же - что бы в результате расшифровки получался точно исходный файл. Тогда будет без разницы, юникод, рисунок, музыка или любое другое содержимое.

А вообще - я написал архиватор, который любой файл сжимает до одного байта. Только вот распаковать обратно к сожалению пока не получается. Работаю над этим... шутка... такая есть старая...
0
0 / 0 / 0
Регистрация: 01.12.2016
Сообщений: 34
05.06.2017, 23:00  [ТС]
Зашифрованная строка, записываемая в новосоздаваемый файл=зашифрованному файлу?

Возник еще один вопрос. Вот этот фрагмент
C++ (Qt)
1
2
3
4
QFile filetext (str_file);
        if (filetext.open(QIODevice::ReadOnly))
    {     QString data=filetext.readAll();
            int n=data.size();
читает все символы из файла??? считая пробелы и вводы? согласно отладчику вне зависимости от длины текста nвыходит равным 3. Не поняла прикола, честно.


Цитата Сообщение от TRam_ Посмотреть сообщение
Правда если в исходном файле было нечётное число байтов, может не сработать
QString, в который я все записываю, вроде по умолчанию 2-х байтный. В данном случае количество исходных байт все таки учитывается?

Добавлено через 11 минут
Цитата Сообщение от alexu_007 Посмотреть сообщение
Файл из байтов состоит, и шифровать нужно побайтово, и расшифровывать так же - что бы в результате расшифровки получался точно исходный файл. Тогда будет без разницы, юникод, рисунок, музыка или любое другое содержимое.

Я очень начинающий кодер. Мысль о том, чтобы научить прогу распознавать среди отдельных байтов двухбайтовые сцепки чего-то сложного, приводит меня в суеверный ужас. Именно поэтому пытаюсь унифицировать пока)
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
06.06.2017, 00:38
Auren, начинай не с docx файлов, а с обычных txt-файлов. Так будет проще смотреть что и как там преобразовалось.

Добавлено через 59 минут
Цитата Сообщение от Auren Посмотреть сообщение
читает все символы из файла??? считая пробелы и вводы? согласно отладчику вне зависимости от длины текста nвыходит равным 3. Не поняла прикола, честно.
в файле docx кроме текста ещё встречаются таблицы стилей текста (с размерами шрифтом, прочим), разделители, управляющие символы (например тот же символ конца строки), и в данном алгоритме все эти символы будут преобразованы. Чтобы преобразовать именно текст в этом файле, нужно хорошо разбираться в формате docx, чтобы знать, где текст, а где всё остальное. Но не думаю, что тут такая задача поставлена.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
06.06.2017, 00:45
Цитата Сообщение от Auren Посмотреть сообщение
Не поняла прикола, честно.
readAll() возвращает QByteArray, при создании из него QString, преобразуется в Unicode при помощи fromAscii(),
преобразование останавливается на первом символе 0.
Цитата Сообщение от Auren Посмотреть сообщение
C++ (Qt)
1
2
int n=data.size(); 
for (int i=0;i<=n;i++)
Здесь выход за границу строки будет, нужно: i < n;
1
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,278
06.06.2017, 17:27
Цитата Сообщение от Auren Посмотреть сообщение
Я очень начинающий кодер. Мысль о том, чтобы научить прогу распознавать среди отдельных байтов двухбайтовые сцепки чего-то сложного, приводит меня в суеверный ужас.
Так я и предлагаю самое простое - шифровать каждый байт по отдельности. При чём тут сцепки какие-то? Файл любой состоит из байтов, неважно что там внутри записано, двухбайтовые, пятибайтовые... Любой файл можно прочитать по одному байту, зашифровать каждый байт, расшифровать - и получить точно исходный файл.

Добавлено через 15 секунд
Цитата Сообщение от Auren Посмотреть сообщение
Я очень начинающий кодер. Мысль о том, чтобы научить прогу распознавать среди отдельных байтов двухбайтовые сцепки чего-то сложного, приводит меня в суеверный ужас.
Так я и предлагаю самое простое - шифровать каждый байт по отдельности. При чём тут сцепки какие-то? Файл любой состоит из байтов, неважно что там внутри записано, двухбайтовые, пятибайтовые... Любой файл можно прочитать по одному байту, зашифровать каждый байт, расшифровать - и получить точно исходный файл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.06.2017, 17:27
Помогаю со студенческими работами здесь

Дешифрование зашифрованного текста
Задача:Как сделать чтобы зашифрованный текст снова стал нормальным текстом??Нужно применить array_flip() $code = array ( 'W'...

Оценка сложности зашифрованного текста?
Вопрос довольно простой. А вот есть ли на него ответ? Мне неизвестно. Итак задан простой шифр замены. Конкретно, 33 символа заменяются...

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

Правка зашифрованного текста, как быть?
Есть такая ссылка &lt;a href=&quot;javascript://&quot;&gt;Ссылка1&lt;/a&gt;, при переходе по которой отображается определенный текст. В коде самой страницы...

Дешифровщик текста, зашифрованного методом Цезаря
Здравствуйте. В универе задали написать прогу, которая расшифровывает заранее зашифрованный методом Цезаря текст. Реализовал проверку на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru