Первая попытка авторизации на C++
Сегодня впервые попробовал написать программку, в которой должна проходить авторизация (неважно к чему, в данном случае, важен сам факт авторизации).
Кто может что посоветовать по сабжу? C++ учу 2, максимум, 3 месяца уже (в школе был QBasic и Паскаль).
как ни странно, всё это у меня компильнулось и, даже, работает :3
P.S. Про то, что пасс и логин хранятся в файлах формата txt, да и ещё в незашифрованном виде, можно не писать - про это и так знаю.
Кто может что посоветовать по сабжу? C++ учу 2, максимум, 3 месяца уже (в школе был QBasic и Паскаль).
#include <iostream> #include <fstream> using namespace std; int main() { string ra, login, pass, rpass, rlogin, clogin, cpass; cout << "Hello!" << endl << "register/authorize(r/a): "; cin >> ra; if (ra == "r") { cout << "login: "; cin >> rlogin; cout << "password: "; cin >> rpass; ofstream flogin("login.txt"); flogin << rlogin; flogin.close(); ofstream fpass("pass.txt"); fpass << rpass; fpass.close(); }; if (ra == "a") { cout << "...reading..." << endl; ifstream flogin("login.txt"); ifstream fpass("pass.txt"); while (!flogin.eof() & !fpass.eof()) { flogin >> clogin; fpass >> cpass; }; cout << "login: "; cin >> login; cout << "password: "; cin >> pass; fpass.close(); flogin.close(); if (login == clogin & pass == cpass) { cout << "ready!" << endl; } else if (login != clogin) { cerr << "Error: invalid login" << endl; system("pause"); } else if(pass != cpass) { cerr << "Error: invalid password" << endl; system("pause"); }; }; if (ra != "a" & ra != "r") { cerr << "Fatal error: invalid value" << endl; system("pause"); }; system("pause"); }
как ни странно, всё это у меня компильнулось и, даже, работает :3
P.S. Про то, что пасс и логин хранятся в файлах формата txt, да и ещё в незашифрованном виде, можно не писать - про это и так знаю.
Комментарии:
Ответить.
-
Ответить.
Если пароль вводится в консоли, то в С (навернои в С++) есть функция getpass("Бла-Бла, текст информирующий, что щаз надо пароль вводить") вроде.
|
ok, thanks :) попробую. апд.: попробовал. Не получилось. Загуглил. там написано, что гетпасс идёт под уникс и не идёт под винду. Редактировано 2011-08-22 09:52:26. |
skydweller | 2012-12-04 00:16:16 1) разбить программу на самодостаточные логические куски (функции)2) реализовать машину состояний для мониторин состояния системы 3) работать не с паролями, а с хэшами Редактировано 2012-12-04 00:16:30. |
-
Ответить.