我只是在试验加密和解密,并且创建了一个加密,解密和写入文件的功能......
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,你可以看到它已被添加到解密的末尾。但为什么?我做错了什么?
答案 0 :(得分: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]"
。因此,解密步骤将解密“加密:”部分以及原始加密消息。