1

我只是在尝试加密和解密,并制作了一个加密、解密和写入文件的函数......

void encrypt(const std::string& r){

std::string new_r = "Encrypted:\n";
for(int i = 0; i < r.length(); i++)
{
    new_r += ~r[i];
}

wtofe("/home/programming/Desktop/latin.txt", new_r); // Writes it to a file
decrypt(new_r);
}

void decrypt(const std::string& r){

std::string new_r = "Decrypted:\n";
for(int i = 0; i < r.length(); i++)
{
    new_r += ~(r[i]);
}

wtofd("/home/programming/Desktop/latin.txt", new_r); //Writes it to a file
}

写入文件和加密工作。它也解密了它,但看看这个奇怪的输出:

在此处输入图像描述

我写的输入是 Davlog,你可以看到它已经被添加到解密的末尾。但为什么?我做错了什么?

4

1 回答 1

4

试试这个:

void encrypt(const std::string& r){
  std::string new_r;
  for(int i = 0; i < r.length(); i++)
  {
      new_r += ~r[i];
  }

  wtofe("/home/programming/Desktop/latin.txt", new_r); // Writes it to a file
  decrypt(new_r);
}

void decrypt(const std::string& r){

  std::string new_r;
  for(int i = 0; i < r.length(); i++)
  {
      new_r += ~(r[i]);
  }

  wtofd("/home/programming/Desktop/latin.txt", new_r); //Writes it to a file
}

在您的原始代码中,您正在编写"Encrypted:[your encrypted msg]"而不是仅仅写入"[your encrypted msg]"您的文件。因此解密步骤将解密“加密:”部分以及原始加密消息。

于 2013-04-11T12:59:21.560 回答