Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.79
popoff17
10 / 10 / 2
Регистрация: 13.07.2010
Сообщений: 206
#1

C++ Проверка логин\пароль - C++

27.07.2011, 06:43. Просмотров 8451. Ответов 36
Метки нет (Все метки)

Доброго времени суток!
В консольном приложении планирую сделать запрос логина\пароля при входе.

.txt файл имеет такую структуру:
=============
pass;log;admin;
password;login;user;
pass2;log2;user;
=============
код программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void main (){
 
int i=0,j=0;
char str[100], ch[100], log[255];
str[0]='0';
std::cin>>log;
std::ifstream access;
access.open("access.txt", std::ios::in | std::ios::binary);
if (!access.is_open()) std::cout<<"not open file!";
access.seekg(0, std::ios::cur);
while (!access.get(ch[i]).eof()){  /////////перебор строки
    if (ch[i] == ';'){break;}
    std::cout<<ch[i];
    i++;
}
 
/////////перебор введенной строки
int len = std::strlen(log);
for (i=0; i<len;i++){
std::cout<<log[i]<<std::endl;
}
 
///////////сравнение введенных данных с данными из файла
for (j=0;j<i;j++)
{
    if (log[j] == ch[j])
    {continue;}
    else
    {std::cout<<"password is not korrect\n";
        break;}
}
std::cout<<"Wellcome to my programm\n";
access.close();
system ("pause");
}
код работает, хотел только спросить, как по вашему, все правильо сделано, или можно было как-то по другому? попроще?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2011, 06:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос C++ Проверка логин\пароль (C++):

Логин и пароль - C++
Программа после введения правильных данных выдает &quot;Добро пожаловать!&quot; ...

Меню логин пароль - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main(){ setlocale ( LC_ALL, &quot;Russian&quot; ); bool...

Логин и пароль из файла - C++
Только начал изучать си и не могу разобрать что за ошибка с проверкой пароля.Помогите,кому не трудно #include &lt;stdio.h&gt; #include...

Авторизация логин-пароль - C++
Программа содержит массив строк, каждая из которых представляет собой запись об учетной записи пользователя, а каждое поле отделяется от...

Логин и пароль прочитать из файла - C++
Помогите составить программу, к которой когда входишь, допустим, под администратором просит вписать логин и пароль, которые нужно прочитать...

подкорректировать код(логин и пароль) - C++
Доброго времени суток господа. Помогите подкорректировать код пожалуйста. Нужно что бы в данном коде было несколько вариантов логинов и...

36
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
27.07.2011, 09:30 #16
Цитата Сообщение от mimicria Посмотреть сообщение
Что помешает мне изменить текстовый файл и записать туда известные мне хэши?
а если ограничить права на файл?
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
27.07.2011, 09:35 #17
Цитата Сообщение от Nameless One Посмотреть сообщение
а если ограничить права на файл?
Предполагается, что программа будет распространяться, не так ли? Кто будет назначать права на моём компьютере, если я скачал и установил программу (к примеру)?
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
27.07.2011, 09:45 #18
Цитата Сообщение от mimicria Посмотреть сообщение
Предполагается, что программа будет распространяться, не так ли? Кто будет назначать права на моём компьютере, если я скачал и установил программу (к примеру)?
ну, судя по ответам ТС'а, это просто университетская поделка, а вообще, к примеру, можно при установке программы назначать необходимые права, создавать пользователей и т.д.
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
27.07.2011, 09:48 #19
Цитата Сообщение от Nameless One Посмотреть сообщение
это просто университетская поделка
Для поделки сойдёт и так, разницы никакой =)
C++
1
cout << "Enter password: "; cin >> pass; if (pass==...)
Цитата Сообщение от Nameless One Посмотреть сообщение
можно при установке программы назначать необходимые права
А потом дядя администратор все эти права может поправить.
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
27.07.2011, 09:51 #20
Цитата Сообщение от mimicria Посмотреть сообщение
А потом дядя администратор все эти права может поправить.
ну так проблема ТС'а же вроде не в защите от пиратства, а в разграничении прав доступа к его самописной "БД"
0
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 09:53 #21
Да ну давай взломай мой алгоритм
0
Вложения
Тип файла: zip demo_simple.exe.zip (4.2 Кб, 35 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 09:55 #22
Цитата Сообщение от NIch Посмотреть сообщение
А зачем иметь исходники? Открывай через отладчик Olly (или любой другой) и пожалуйста смотри на свой код, правда на ассемблере. Алгоритм открывается на раз-два.
Пост выше тебе!
0
NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
27.07.2011, 10:01 #23
Вопрос защиты программы паролем очень непростой.
1. Где хранить пароль (файл, реестр, сеть и пр.)
2. В каком виде хранить пароль (открыто, шифрованно, хэш)
3. Как спрятать (защитить) участок кода в программе, отвечающий за проверку пароля
Вопросов уйма, потому что если программа имеет доступ к паролю, то и злоумышленник тож может иметь доступ... Получить код программы не составляет труда имея exeшник...
0
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
27.07.2011, 10:02 #24
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Да ну давай взломай мой алгоритм
Сами попробуйте на первом же вопросе нажать кнопку "Отмена"
0
NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
27.07.2011, 10:06 #25
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Пост выше тебе!
Чета я не понимаю как она работает... Запускаю, там сразу 2 окна открываются...
1. Введите пароль (поле ввода и 2 кнопки)
2. Вы взломали программу (2 кнопки)
Может что то в ней не так, не хочется "пытать счастья" если она не доработана, посмотри пожалуйста.
0
popoff17
10 / 10 / 2
Регистрация: 13.07.2010
Сообщений: 206
27.07.2011, 10:20  [ТС] #26
Цитата Сообщение от mimicria Посмотреть сообщение
Предполагается, что программа будет распространяться, не так ли? Кто будет назначать права на моём компьютере, если я скачал и установил программу (к примеру)?
Предполагается программа для сдачи практики в универе. но темку создал по 2м причинам:

- чтобы опытные кодеры оценили алгоритм проверки введенных данных и, если есть смысл, посоветовали как можно сделать по другому, т.е. я хотел услышать критику и советы.
Для серьезной работоспособной программы то понятно, что лучше писать или хэш, или в реестр, или же в мускульную БД, причем сделать клиент-серверное приложение и "бла-бла-бла", но я пока до этого не дорос, да и задание подразумевает организацию файловой БД(тэ-икс-тэ).

- с С++ только знакомлюсь (пока однокурсники его изучали я в больнице лежал), поэтому знания и навыки полученные в ходе написания этой программы будут использованы для написания программы для работы на моем предприятии (есть одна задумка)

Другими словами: будь вы преподом, по пятибальной шкале на сколько бы оценили мой код? какие бы выдвинули замечания и предложения?

Добавлено через 1 минуту
Цитата Сообщение от Nameless One Посмотреть сообщение
ну так проблема ТС'а же вроде не в защите от пиратства, а в разграничении прав доступа к его самописной "БД"
кто такой "ТС"?
0
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 10:23 #27
Ну да не дописал ветвь если Cancel нажать, ну мне интересно взломаите ли вы сейчас!
0
Вложения
Тип файла: zip demo_simple.zip (4.2 Кб, 26 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 10:27 #28
mimicria, NIch - мой пост выше Вам!Ну покажите что вы не просто так воздух сотрясаете, слабо???

Добавлено через 2 минуты
Вот простой консольный вариант демки, каждый месяц в строке логина меняется 1 цифра, можно вбить чтобы каждую секунду меняась, вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
 
char sLogin[] = "TESTxx";
bool login(char * sLogin);
bool bLogin = false;
 
int main()
{
    if(!bLogin & login(sLogin))
        bLogin = true;
    if(bLogin)
    {
        printf("You enter in program\r\n");
        printf("Press any key to continue\r\n");
        getch();
    }
    else
        printf("Enter login invalid\r\n");
    return 0;
}
 
bool login(char * sLogin)
{
    bool bRet = false;
    time_t t;time(&t);
    tm * ptm = localtime(&t);
    sLogin[4] = '\0';
    char s[1024];
    sprintf(s,"%02d",ptm->tm_mon + 1);
    strcat(sLogin,s);
    printf("Login string must be less then 1024 chars\r\n");
    printf("Enter login>");
    scanf("%s",&s);
    if(strcmp(sLogin,s) == 0)
        bRet = true;
    return bRet;
}
0
NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
27.07.2011, 10:31 #29
Слушай, -=ЮрА=-, готов проверить и твои и свои навыки, но посмотри опять на свою программу. Запускаю, а там опять 2 окна. Может так и должно быть?
Отодвигаю окно с вводом пароля в сторону, а прям под ним окно с надписью "Вы взломали программу"
0
Миниатюры
C++ Проверка логин\пароль  
mimicria
return (true);
1958 / 1095 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
27.07.2011, 10:32 #30
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ну мне интересно взломаите ли вы сейчас!
demo_simple2.zip
Вводим любые значения, улыбаемся и машем!!!

И да, под основным окном висит как-раз об успешном завершении
2
27.07.2011, 10:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2011, 10:32
Привет! Вот еще темы с ответами:

Исправить регулярку, чтобы в rgxm записывалось последовательно логин, пароль, адрес сервера, порт и имя потока - C++
Пытаюсь распарсить выражение такого вида &quot;rtsp://@]&lt;server-address-or-name&gt;&quot; result = std::regex_match(url, rgxm,...

Работа с "Логин и пароль" на с++ - C++
Здравствуйте! Вот возник вопрос да и кончились идеи.. Вот написал простую программу для входа с логина и пароля... И хочу спросить...

Передать логин и пароль на SMPT сервер - C++
В общем вопрос по теме топика, програмно подконнектился к smtp.mail.ru, но не знаю как передать на него свой логин и пароль Вот как...

Visual C++ проверка ввода на число, проверка на кирилицу - C++
Суть ввести с клавиатуры нечто, и повторять ввод до тех пор пока введенное число не будет числом. Этот код проверяет на буквы и знаки,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru