Мне нужно зашифровать и дешифровать файлы с помощью C++ с помощью XOR Encryption. Мне нужно знать, где я могу сделать для него графический интерфейс.C++: мини-проект по криптографии
Есть ли способ сделать это (возможно, только на C++)?
Мне нужно зашифровать и дешифровать файлы с помощью C++ с помощью XOR Encryption. Мне нужно знать, где я могу сделать для него графический интерфейс.C++: мини-проект по криптографии
Есть ли способ сделать это (возможно, только на C++)?
Существует довольно простой ответ на вопрос, как шифровать файлы. Этот скрипт использует XOR encryption для шифрования файлов. Зашифруйте файл во второй раз, чтобы его расшифровать.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void encrypt (string &key,string &data){
float percent;
for (int i = 0;i < data.size();i++){
percent = (100*i)/key.size(); //progress of encryption
data[i] = data.c_str()[i]^key[i%key.size()];
if (percent < 100){
cout << percent << "%\r"; //outputs percent, \r makes
}else{ //cout to overwrite the
cout<< "100%\r"; //last line.
}
}
}
int main()
{
string data;
string key = "This_is_the_key";
ifstream in ("File",ios::binary); // this input stream opens the
// the file and ...
data.reserve (1000);
in >> data; // ... reads the data in it.
in.close();
encrypt(key,data);
ofstream out("File",ios::binary);//opens the output stream and ...
out << data; //... writes encrypted data to file.
out.close();
return 0;
}
Эта строка кода, где происходит шифрование:
data[i] = data.c_str()[i]^key[i%key.size()];
шифрует каждый байт по отдельности. Каждый байт шифруется с гольца, который изменяется в процессе шифрования из-за этого:
key[i%key.size()]
Но есть много методов шифрования, например, вы можете добавить 1 к каждому байту (шифрование) и вычесть 1 из каждый байт (дешифрование):
//Encryption
for (int i = 0;i < data.size();i++){
data[i] = data.c_str()[i]+1;
}
//Decryption
for (int i = 0;i < data.size();i++){
data[i] = data.c_str()[i]-1;
}
Я думаю, что это не очень полезно, чтобы показать прогресс, потому что это быстро.
Если вы действительно хотите создать графический интерфейс, я бы порекомендовал Visual Studio.
Надеюсь, что это было полезно.
Отключить тему для этого сайта. –
@RicharCritten Где я должен спрашивать? –
Если вы ищете кого-то для написания программного обеспечения для вас, то вам следует попросить инженера-программиста. Если вы пытаетесь написать программное обеспечение, вы должны изучить C++ либо через класс, либо из чтения учебных книг на C++. –