Aktualnie tworzę aplikacje w c++ i potrzebuje, aby zapisywała hasło, które użytkownik wpisze do pliku w, którym będzie zaszyfrowane hasło. Próbowałem użyć XOR, ale nie odszyfrowywało go po prawnie, bo dodawało zawsze na koniec odszyfrowanego hasła jakiś znak np. Password^.
Może ktoś podpowie jak to zrobić.
string XOR(string data, char key[]) {
char *xorKey = key;
string xors = data;
int len = data.size();
for (int i = 0; i < len; i++) {
xors[i] = data[i] ^ *xorKey;
}
return xors;
}
class Configuration {
public:
static void SetPassword(string password) {
char key[] = "Password";
ofstream File("password.dat");
File << XOR(password, key);
File.close();
}
};
cout << "Create password "
string userpass;
cin >> userpass;
Configuration::SetPassword(userpass);
// jesli stworzy juz haslo
string dec = XOR(readedfile,key);
cout << dec << endl;
while (1) {
cout << "Write a password:";
string check;
cin >> check;
if (check == dec) {
cout << "Correct password";
break;
}
else {
cout << "Invalid password!\n";
}
}