从事基于简单矩阵乘法加密的大学项目。
项目大纲是这样的;
文本文件到矩阵乘以加密密钥矩阵 = 加密文件。
加密文件到矩阵乘以密钥矩阵的倒数 = 解密文件。
但我想更进一步,能够处理任何文件(文本、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)’