Работа над проектом колледжа для простого шифрования на основе умножения матриц.
Структура проекта такова:
текстовый файл в матрицу, умноженный на матрицу ключей шифрования = зашифрованный файл.
Зашифрованный файл в матрицу, умноженный на обратную матрицу ключей = Расшифрованный файл.
Но я хочу пойти немного дальше и иметь возможность любой файл (текст, mp3, GIF и т. д. и т. д.).
Я часами занимаюсь поиском решения этой проблемы и начинаю немного расстраиваться.
Лучший (и единственный) способ, который я могу придумать, - это чтобы программа считывала необработанный двоичный файл и выполняла шифрование.
Итак -> вопросы:
Можно ли извлечь необработанный двоичный файл из файла, поместить в матрицу, выполнить умножение матриц и (по существу) записать двоичный файлв файл?
И какова жизнеспособность такого метода на разных компьютерах и платформах?(Я думаю, что, может быть, если я преобразую из двоичного в int и при дешифровании преобразую обратно, это может измениться - разные размеры на разных компьютерах и т. Д.?)
Кроме того,Приветствую мнение о лучших решениях
---> Но основной алгоритм должен основываться на умножении матриц.
Мой код:
int writetomatrix(int current_variable)
{
if (counter == 9){
counter=0;
b=0;
a=0;}
if (b==3) b=0;
if (a==3) {b++;
a=0;}
counter++;
B[a][b]=current_variable;
a++;
}
int main () {
int *buffer= new int[1];
ifstream input;
input.open ("input.txt",ios::in|ios::binary);
input.read ((char*)&buffer, 1);
writetomatrix(buffer);
}
Я получаю ошибку:
initializing argument 1 of ‘int writetomatrix(int)’