我正在使用我在网上找到的 DES 算法。它工作正常,但我有一个问题。如您所知,DES 加密/解密每个 64 字节的块。但是如果在一个大文件中最后一个块没有在 64 字节块边界处结束会发生什么?我知道,会有错误。
我正在使用以下代码:
Des d1;
char *plaintext=new char[64];
char *chyphertext=new char[64];
h.open("requisiti.txt",ios::in|ios::binary);.
k.open("requisiti2.txt",ios::out|ios::binary);
while(!h.eof())
{
h.read(plaintext,64);
chyphertext=d1.Encrypt(plaintext);
//decryption is the same.just change Encrypt to Decrypt
k.write(chyphertext,64);
}
h.close();
k.close();
remove("requisiti.txt");
rename("requisiti2.txt","requisiti.txt");
所以我需要一个像“填充”这样的解决方案,但我不知道一个简单的算法。请帮助我以一种好的方式加密/解密文件。