您好我尝试用c ++编写代码。此代码仅使文本文件易于加密并保存到新文件中。当我编译此代码时,防病毒软件说,它是病毒/间谍软件Gen:Variant.Kazy.20825。我不知道为什么它是病毒。 这是我的代码:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void controlParameters(int argc){ //check if input parameters are ok
if(argc == 1){
cout << "Pokud chcete text zasifrovat, spustte program s parametrem: -enc \"Nazev_souboru.txt\"\n";
cout << "Pokud ho chcete desifrovat, spustte program s parametrem: -dec \"Nazev_souboru.txt\"\n";
}else if(argc > 3){
cout << "Moc parametru. Spustte si program bez parametru.\n";
}else if(argc < 3){
cout << "Chybi jeden parametr. Spustte si program bez parametru.\n";
}else{
cout << "Vsechno vypada zatim dobre\n";
}
}
void encryption(string &file); //encrypt text file
void decryption(string &file); //decrypt text file
bool controlFile(string &file); //check if file can be opened
int main(int argc, char **argv){
controlParameters(argc);
string file;
file = argv[2];
if(controlFile(file)){
}else{
cout << "Soubor nesel nacist." << endl;
return -1;
}
cout << "Ukonceno.\nZmacknete ENTER pro pokracovani..."<<endl;
cin.get();
return 0;
}
bool controlFile(string &file){
ifstream ifs;
ifs.open(file);
if(ifs.is_open()){
ifs.close();
return true;
}else{
ifs.close();
return false;
}
}
void encryption(string &file){
ifstream ifs;
ofstream ofs;
string line;
ifs.open(file);
ofs.open("encrypt.txt");
if(ifs.is_open()){
while(!ifs.eof()){
getline(ifs,line);
int a = line.length();
int i = 0;
while(i < a){
ofs << ((char)(line[i]^100));
}
line.clear();
ofs << "\n";
}
}else{
cout << "Nelze nacist soubor" << endl;
}
}
void decryption(string &file){
ifstream ifs;
ofstream ofs;
string line;
ifs.open(file);
ofs.open("decrypt.txt");
if(ifs.is_open()){
while(!ifs.eof()){
getline(ifs,line);
int a =line.length();
int i = 0;
while(i < a){
ofs << ((char)(line[i]^100));
}
line.clear();
ofs << "\n";
}
}else{
cout << "Nelze nacist soubor" << endl;
}
}
答案 0 :(得分:4)
防病毒软件使用“启发式”来确定什么是病毒,什么不是。因此,它会在文件中查找发现可疑内容的模式。我在代码中看不到任何直接错误,所以我怀疑它是“假阳性”。我个人不喜欢防病毒软件,它导致的问题比解决的问题还要多......
顺便说一句,您可以将“输出文件名”添加到加密/解密函数中,并使它们成为一个函数! ;)
答案 1 :(得分:3)
最好从病毒扫描程序中排除源控制目录;即使在执行源代码控制操作或编译时出现 no 误报,它们也会导致性能和锁定问题(我已经多次看到它)。
因此,如果只是为了让您的编程体验更可靠,请在这些目录上禁用病毒扫描程序。
您可能仍希望扫描可执行文件的最终发布版本以帮助避免误报:毕竟,即使病毒扫描程序窒息也不是您的错,但留下用户并不是一个好印象。 / p>