Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/120: Рейтинг темы: голосов - 120, средняя оценка - 4.85
10 / 10 / 5
Регистрация: 13.07.2010
Сообщений: 206
1

Проверка логин / пароль

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

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

.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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2011, 06:43
Ответы с готовыми решениями:

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

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

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

Логин и пароль из файла
Только начал изучать си и не могу разобрать что за ошибка с проверкой пароля.Помогите,кому не...

36
Заблокирован
Автор FAQ
27.07.2011, 09:53 21
Author24 — интернет-сервис помощи студентам
Да ну давай взломай мой алгоритм
Вложения
Тип файла: zip demo_simple.exe.zip (4.2 Кб, 38 просмотров)
0
Заблокирован
Автор FAQ
27.07.2011, 09:55 22
Цитата Сообщение от NIch Посмотреть сообщение
А зачем иметь исходники? Открывай через отладчик Olly (или любой другой) и пожалуйста смотри на свой код, правда на ассемблере. Алгоритм открывается на раз-два.
Пост выше тебе!
0
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
27.07.2011, 10:01 23
Вопрос защиты программы паролем очень непростой.
1. Где хранить пароль (файл, реестр, сеть и пр.)
2. В каком виде хранить пароль (открыто, шифрованно, хэш)
3. Как спрятать (защитить) участок кода в программе, отвечающий за проверку пароля
Вопросов уйма, потому что если программа имеет доступ к паролю, то и злоумышленник тож может иметь доступ... Получить код программы не составляет труда имея exeшник...
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
27.07.2011, 10:02 24
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Да ну давай взломай мой алгоритм
Сами попробуйте на первом же вопросе нажать кнопку "Отмена"
0
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
27.07.2011, 10:06 25
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Пост выше тебе!
Чета я не понимаю как она работает... Запускаю, там сразу 2 окна открываются...
1. Введите пароль (поле ввода и 2 кнопки)
2. Вы взломали программу (2 кнопки)
Может что то в ней не так, не хочется "пытать счастья" если она не доработана, посмотри пожалуйста.
0
10 / 10 / 5
Регистрация: 13.07.2010
Сообщений: 206
27.07.2011, 10:20  [ТС] 26
Цитата Сообщение от mimicria Посмотреть сообщение
Предполагается, что программа будет распространяться, не так ли? Кто будет назначать права на моём компьютере, если я скачал и установил программу (к примеру)?
Предполагается программа для сдачи практики в универе. но темку создал по 2м причинам:

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

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

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

Добавлено через 1 минуту
Цитата Сообщение от Nameless One Посмотреть сообщение
ну так проблема ТС'а же вроде не в защите от пиратства, а в разграничении прав доступа к его самописной "БД"
кто такой "ТС"?
0
Заблокирован
Автор FAQ
27.07.2011, 10:23 27
Ну да не дописал ветвь если Cancel нажать, ну мне интересно взломаите ли вы сейчас!
Вложения
Тип файла: zip demo_simple.zip (4.2 Кб, 28 просмотров)
0
Заблокирован
Автор 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
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
27.07.2011, 10:31 29
Слушай, -=ЮрА=-, готов проверить и твои и свои навыки, но посмотри опять на свою программу. Запускаю, а там опять 2 окна. Может так и должно быть?
Отодвигаю окно с вводом пароля в сторону, а прям под ним окно с надписью "Вы взломали программу"
Миниатюры
Проверка логин / пароль  
0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
27.07.2011, 10:32 30
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ну мне интересно взломаите ли вы сейчас!
demo_simple2.zip
Вводим любые значения, улыбаемся и машем!!!

И да, под основным окном висит как-раз об успешном завершении
2
NIch
27.07.2011, 10:37
  #31

Не по теме:

Вообще похоже на CrackMe...Видели, знаем))) Интересно будет посмотреть)))

0
Заблокирован
Автор FAQ
27.07.2011, 10:41 32
mimicria, да признаю проект взломал

Добавлено через 2 минуты
NIch, ну это можно убрать ShowWindow(SW_HIDE), всё равно инпут на основное окно закрыт окном пароля...
0
grizlik78
27.07.2011, 10:41
  #33

Не по теме:

Цитата Сообщение от popoff17 Посмотреть сообщение
кто такой "ТС"?
Если посмотришь на свои сообщения в этой теме, туда где дата и время сообщения указаны, то увидишь, что ТС это ты :) От англ. "Топик-стартер", то есть автор темы.

0
return (true);
1976 / 1111 / 221
Регистрация: 19.04.2011
Сообщений: 2,345
27.07.2011, 11:05 34
Цитата Сообщение от popoff17 Посмотреть сообщение
Другими словами: будь вы преподом, по пятибальной шкале на сколько бы оценили мой код?
Оценка 2.
Удалите файл access и посмотрите что получилось
0
401 / 312 / 74
Регистрация: 17.03.2010
Сообщений: 1,119
27.07.2011, 11:05 35
-=ЮрА=-, не буду патчить твою программу, лень)))
Вот по этому адресу 00401505 меняем в отладчике JE на JNE и вводим любой пароль)))
Таким же макаром можно найти сам пароль, но если он меняется постоянно, то лучше попросить программу соглашаться на любой...
Вот скрины (прям как пособие для начинающик крекеров):
Миниатюры
Проверка логин / пароль   Проверка логин / пароль   Проверка логин / пароль  

Проверка логин / пароль  
1
10 / 10 / 5
Регистрация: 13.07.2010
Сообщений: 206
27.07.2011, 13:16  [ТС] 36
Цитата Сообщение от mimicria Посмотреть сообщение
Оценка 2.
Удалите файл access и посмотрите что получилось
ну да... прога вылетела со свистом... я думал консоль просто отобразит что нет файла(11 строка):

C++
1
if (!access.is_open()) std::cout<<"not open file!";
0
Заблокирован
Автор FAQ
27.07.2011, 13:33 37
Цитата Сообщение от NIch Посмотреть сообщение
-=ЮрА=-, не буду патчить твою программу, лень)))
Вот по этому адресу 00401505 меняем в отладчике JE на JNE и вводим любой пароль)))
Таким же макаром можно найти сам пароль, но если он меняется постоянно, то лучше попросить программу соглашаться на любой...
Вот скрины (прям как пособие для начинающик крекеров):
Не знал, спасибо за ликбез.
0
27.07.2011, 13:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2011, 13:33
Помогаю со студенческими работами здесь

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

Логин и пароль через структуры
Ребята честно я не вкуриваю.. препод скинул , сказал дописать сие чудо.. #include &quot;stdafx.h&quot;...

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

Программа, которая запрашивает логин и пароль из файла
Всем привет, написал программу, которая запрашивает логин и пароль из функции для C++ Вот код:...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru