Недавно я уже задавал несколько вопросов по моей программе-шифровщику, но теперь у меня появился новый (уже окончательный) вопрос. Дело в том, что последний этап моей программы - шифрование файлов с помощью XOR. Мой алгоритм прост:
В итоге зашифрованное изображение PNG не открылось. Однако не открылось оно и после расшифровки! А именно: "Фатальная ошибка при чтении файла изображения формата PNG:I[D4][8B][E5]: invalid chunk type".
Привожу код программы и подписанный скриншот:
Код (нажатие кнопок "открыть" и "сохранить"):
#include "file.h"
#include "ui_file.h"
#include <QFile>
#include <QFileDialog>
#include <QTextStream>
QByteArray opened;
File::File(QWidget *parent) :
QWidget(parent),
ui(new Ui::File)
{
ui->setupUi(this);
}
File::~File()
{
delete ui;
}
void File::on_pushButton_clicked()
{
opened.clear();
QString pass = QFileDialog::getOpenFileName(0, "Выберите файл: ", "", "");
QFile file(pass);
ui->textEdit->append(pass);
if ((file.exists())&&(file.open(QIODevice::ReadOnly)))
{
opened = file.readAll();
file.close();
}
}
void File::on_pushButton_2_clicked()
{
QString text = ui->textEdit->toPlainText();
QByteArray key = text.toUtf8();
for (int i = 0; i < opened.length(); i ++)
{
opened [i] = key [i % key.length()] xor opened [i];
}
QString pass = QFileDialog::getSaveFileName(0, "Выберите имя и путь файла: ", "", "");
QFile file(pass);
if(file.open(QIODevice::WriteOnly))
{
file.write(opened);
file.close();
}
}
Скриншот:
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Нужно отправить пакет (под видом клиента) на сервер Minecraft PE и получить ответНашел статью на вики, описывающую взаимодействия клиента и сервера,...
Сортирую интовый вектор, не мог понять как происходит выход за границы массивы, вот код:
Есть список MyListМне нужно чтобы в методе addItem вызывался копирующий конструктор класса у объекта переданного в метод addItem, а не только класса...
У меня задание реализовать класс Binary и перегрузить в классе оператор +Я это реализовал, но при выводе выдает неправильный результат