Ich habe vor kurzem angefangen zu lernen, C++ online und begann mit der Arbeit an diesem Code, aber brauche Hilfe mit den Fehlern, die der Compiler auf mich wirft. Grundsätzlich möchte ich nur ein Passwort vom Benutzer erhalten, wenn es das erste Mal ist, indem Sie "Flag" Variable verwenden und das Passwort in einer verschlüsselten Form in eine Textdatei schreiben. Wenn sich der Benutzer nicht zum ersten Mal anmeldet und ein Passwort gespeichert hat, lesen Sie den verschlüsselten Text, entschlüsseln Sie ihn und prüfen Sie, ob er dem vom Benutzer eingegebenen Passwort entspricht.C++ Verschlüsselung und Entschlüsselung Quellcode
#include<iostream>
#include<string.h>
#include<fstream>
using namespace std;
char encryptpass(char *pass) //function to encrypt
{
for(int i=0; pass[i] != '\0'; ++i)
char enpass[10]= ++pass[i];
return(enpass);
}
char decryptpass(char *str) // function to decrypt
{
for(; str!='\0'; ++str)
char depass[10]= --str;
return(depass);
}
int main() // main function
{
int flag=0;
if(flag=0)
{
cout<<"enter your password";
char pass[10];
cin>>pass;
fstream file("userpass.txt",ios::in | ios::out);
file<<enpass[10];
}
else
{
cout<<"enter password";
cin>>pass;
bool check=false;
static char str[10];
file.seekg(ios::beg);
file >> str;
file.close();
decryptpass(str);
if(pass=depass) // decrypted password is equal to input password ?
{
check=true; // set boolen value to true
}
else
{
cout<<"incorrect password";
}
return(0);
} // end of main
der Compiler gibt diese Fehler -----
warning : In function 'void encryptpass(char*)':
line 9 error: array must be initialized with a brace-enclosed initializer
line 9 warning: unused variable 'enpass' [-Wunused-variable]
line 10 error: 'enpass' was not declared in this scope
line 10 error: return-statement with a value, in function returning 'void' [-fpermissive]
warning : In function 'void decryptpass(char*)':
line 17error: array must be initialized with a brace-enclosed initializer
line 17 warning: unused variable 'depass' [-Wunused-variable]
line 18 error: 'depass' was not declared in this scope
line 18 error: return-statement with a value, in function returning 'void' [-fpermissive]
warning : In function 'int main()'
line 25 warning: suggest parentheses around assignment used as truth value [-Wparentheses]
line 31 error: 'enpass' was not declared in this scope
line 36 error: 'pass' was not declared in this scope
line 39 error: 'file' was not declared in this scope
line 43 error: 'depass' was not declared in this scope
Sie haben nicht gefragt, aber ich denke, Sie sollten wissen, dass das nicht der richtige Weg ist, um Passwörter zu tun. Über den Code selbst ... Lerne, wie du nie in solch ein Chaos gerätst. Starten Sie ein Projekt, indem Sie nur ein kleines bisschen Code schreiben. Holen Sie sich das kleine bisschen zum Kompilieren und machen Sie das Richtige. (Das "Richtige" an diesem Punkt wird nicht viel sein.) Fügen Sie ein bisschen mehr hinzu, kompilieren und testen. Und so weiter und so weiter. Sobald Sie den Dreh raus haben, wird "der Fehler" leicht zu finden sein, denn es wird das Letzte sein, was Sie geändert haben. –
Ich würde sicherlich den Code nach der vorgeschlagenen Methode neu schreiben. danke für den Vorschlag. – binu23