Program do tworzenia konta i logowania do niego
Ostatnio zmodyfikowano 2015-11-30 09:23
Pete12234 Temat założony przez niniejszego użytkownika |
Program do tworzenia konta i logowania do niego » 2015-11-29 17:12:58 Witam. Na pracę domową z informatyki dostałem zadanie, aby zrobić program, który najpierw będzie zapisywał zaszyfrowane dane, które poda użytkownik, a później, podczas logowania, wypisywał komunikat, czy próba się powiodła czy nie. No i nie działa. Z góry dzięki za pomoc :D Kod wygląda tak: #include<iostream> #include<fstream> #include<string> using namespace std;
string szyfruj( string & tekst ) { for( int i = 0; i < tekst.size(); i++ ) { char a =( tekst[ i ] + 3 ) - 1; tekst[ i ] = a; } return tekst; }
string deszyfruj( string & tekst ) { for( int i = 0; i < tekst.size(); i++ ) { char a =( tekst[ i ] - 3 ) + 1; tekst[ i ] = a; } return tekst; } struct konto { string login; string haslo; };
int main() { int wybor; konto dane; string lo; string ha; string l; string h; fstream logino; fstream hasloo; ofstream login( "login.txt" ); ofstream haslo( "haslo.txt" ); cout << "[1] Zaloguj" << endl; cout << "[2] Utworz konto" << endl; cin >> wybor; switch( wybor ) { case 1: logino.open( "login.txt" ); hasloo.open( "haslo.txt" ); getline( logino, l ) cout << l; deszyfruj( l ); getline( hasloo, h ); deszyfruj( h ); do { cout << "Podaj login" << endl; cin >> lo; cout << "Podaj haslo" << endl; cin >> ha; if( ha != h || lo != l ) { cout << "Niepoprawny login lub haslo" << endl; cout << "Podaj login" << endl; cin >> lo; cout << "Podaj haslo" << endl; cin >> ha; } else { cout << "Zostales pomyslnie zalogowany!" << endl; } } while( l == lo || h == ha ); break; case 2: cout << "Podaj login" << endl; cin >> dane.login; cout << "Podaj haslo" << endl; cin >> dane.haslo; szyfruj( dane.login ); login << dane.login; szyfruj( dane.haslo ); haslo << dane.haslo; break; } return 0; }
|
|
mateczek |
» 2015-11-29 17:46:29 #include<iostream> #include<fstream> #include<string> using namespace std;
string & szyfruj( string & tekst ) { for( char & a: tekst ) a += 3; return tekst; }
int main()
{ fstream plik; int wybor; string login, haslo, klawiaturaLogin, klawiaturaHaslo; cout << "[1] Zaloguj" << endl; cout << "[2] Utworz konto" << endl; cin >> wybor; switch( wybor ) { case 1: plik.open( "login.txt", std::ios::in ); plik >> login >> haslo; plik.close(); while( 1 ) { cout << "podaj login i haslo" << endl; cin >> klawiaturaLogin >> klawiaturaHaslo; if( szyfruj( klawiaturaLogin ) != login ) continue; if( szyfruj( klawiaturaHaslo ) != haslo ) continue; cout << "zalogowano pomyślnie" << endl; break; } break; case 2: plik.open( "login.txt", std::ios::out ); cout << "Podaj login i haslo" << endl; cin >> klawiaturaLogin >> klawiaturaHaslo; plik << szyfruj( klawiaturaLogin ) << " " << szyfruj( klawiaturaHaslo ); plik.close(); break; } return 0; }
procedura deszyfruj jest nie potrzebna (do prawdziwego szyfrowania używa się algorytmów które nie mają opcji deszyfracji - jednostronne) !!! deszyfrując w programie ułatwiasz crackowanie :P tak na przyszłość:P Szyfrujesz hasło i porównujesz z zaszyfrowanym z pliku !!! |
|
Gibas11 |
» 2015-11-29 22:42:40 Jeżeli nie da się odszyfrować to nie ma mowy o szyfrowaniu, to już hashowanie. Tak na przyszłość. |
|
mateczek |
» 2015-11-30 09:23:27 Jeżeli nie da się odszyfrować to nie ma mowy o szyfrowaniu, to już hashowanie |
oto-to właśnie o to chodziło !!! |
|
« 1 » |