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

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

Войти
Регистрация
Восстановить пароль
 
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
#1

Поиск последовательности элементов в массиве - C++

11.06.2014, 02:08. Просмотров 391. Ответов 5
Метки нет (Все метки)

В универе задали создать программу авторизации (иначе не знаю как объяснить). В начале на выбор предлагается два действия - добавить пользователя и авторизация. Все это нужно сделать с хешированием и считыванием/записью в файл. В итоге у меня получился вот такой вот код:
Кликните здесь для просмотра всего текста
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <fstream>
#include <ctime>
using namespace std;
const int n =1000;
int a, b, c, d;
const char glas[] = "AEIOUYaeiouy";
const char sogl[] = "BCDFGHJKLMNPQRSTVWXZbcdfghjklmnpqrstvwxz";
void registraciya(char *log, char *pass)
{   
    char *z = {", "};
    cout << "Registraciya novogo pol'zovatelya"<< endl;
    cout << "Vvedite login maximum 16 symvolov" <<endl;
    cin >> log;
    cout << "Vvedite parol' maximum 16 symvolov" <<endl;
    cin >> pass;
    /*************Хеширование************/
     for (int i = 0; i < strlen(log); i++)
        {
    if (strchr(sogl, log[i]) == NULL)
     {
         a = int(log[i]);
         ofstream f("log.txt", ios::app);
        f << a;
    }
        }
     cout << endl;
      for (int i = 0; i < strlen(pass); i++)
        {
    if ( strchr(sogl, pass[i]) == NULL)
     {
         b = int(pass[i]);
         ofstream p("pass.txt", ios::app);
        p << b;
     }
        }
        ofstream f("log.txt", ios::app);
        f << z;
        ofstream p("pass.txt", ios::app);
        p << z;
}
void avtorizaciya(char *a_log, char *a_pass)
{
        char* f_log = new char[n];
        char* f_pass = new char[n];
        ifstream l("log.txt");
            //while(!f.eof())
        for(int i=0; i<1000; i++)
            {
                l >> f_log;
                cout << f_log;
            }
        cout << endl;
        ifstream g("pass.txt");
            //while(!f.eof())
        for(int i=0; i<1000; i++)
            {
                g >> f_pass;
                cout << f_pass;
            }
        cout << endl;
      cout << "Avtorizaciya" << endl;
      cout << "Vvedite login"<< endl;
      cin >> a_log;
      cout << "Vvedite parol'"<< endl;
      cin >> a_pass;
      /************Хеширование***********/
     for (int i = 0; i < strlen(a_log); i++)
        {
    if ( strchr(sogl, a_log[i]) == NULL)
     {
         c = int(a_log[i]);
         cout << c;
     }
        }
     cout << endl;
      for (int i = 0; i < strlen(a_pass); i++)
        {
    if ( strchr(sogl, a_pass[i]) == NULL)
     {
         d = int(a_pass[i]);
         cout << d;
    }
     }
      /****************************************/
      /************* Поиск ********************/
 
      }
int _tmain(int argc, _TCHAR* argv[])
{   
    char* log = new char[n];
    char* pass = new char[n];
    char* a_log = new char[n];
    char* a_pass = new char[n];
    char* f_log = new char[n];
    char* f_pass = new char[n];
    char sw;
    double ws;
    begin :
    cout <<"==========Menu==========" << endl;
    cout << " 1. Dobavlenie novogo pol'zovatelya" << endl;
    cout << " 2. Avtorizaciya" << endl;
    cout << " 3. Vichod" << endl;
    cout << "========================" << endl << "Vvedite cifru iz menu dlya deysviya" << endl;
        cin >> ws;
        sw = ws;
        if(ws>5 || ws<1 || (ws<='A' && sw>='Z')|| (ws<='a' && ws >='z'))
        {
            cout << "Oshibka" << endl;
            goto begin;
        }
        if(ws!= (int)ws)
        {
            cout << endl << "Oshibka" << endl;
            goto begin;
        }
        switch(sw)
        {
        case 1:
            registraciya(log, pass);
            goto begin;
        case 2:
            avtorizaciya(a_log, a_pass);
            goto begin;
        case 3:
            return 0;
        }
}

Вся проблема в авторизации. Как сделать поиск хешированных логина и пароля в массиве других хешированных лоигнов и паролей, введенный при регистрации?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2014, 02:08     Поиск последовательности элементов в массиве
Посмотрите здесь:

Поиск последовательности элементов в массиве - C++
Как можно в массиве произвести поиск последовательности элементов? то есть в динамичесокм массиве, который заполняется рандомными числами...

Поиск последовательности элементов максимальной длины в массиве - C++
Помогите пожалуйста написать программу, вот условия программы...Даны два массива. Напишите программу, которая находит такую...

Поиск последовательности в массиве. - C++
В массиве В определить начальный и конечный индексы элементов, состав¬ляющих максимальную по длине неубывающую последовательность. Вывести...

Поиск места в массиве последовательности - C++
Написал программу для нахождения позиции в массиве последовательности чисел #include&lt;iostream&gt; #include&lt;algorithm&gt; ...

Поиск последовательности в массиве символов - C++
есть массив ascii символов мне нужно там найти последовательность (строку) есть какие-нибудь функции для поиска последовательности. в...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,660
11.06.2014, 02:41     Поиск последовательности элементов в массиве #2
1) Логины не хешируются. Поиск происходит по логину в файле "auth.txt" в нём структура:
login%hash
login2%hash2
При вводе логина сравниваем введенный логин и текст в каждой строке до знака %. Если находим совпадение переходим к второму этапу.
2) Введенный пароль хешируем через onewayfunction (почитает в гугл, что это ) и сравниваем с хешем в файле. Получается не зная параметров и алгоритмов нашей onewayfunction узнать пароль имея файл или строку "petya%Mf3N5xifs50fmsq" очень сложно.

P.S. В onewayfunction можешь запихнуть типа сумма всех символом по int log 17 определит ключ хеширования и т.д. Вообщем там поизвращаешся )
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
11.06.2014, 03:03  [ТС]     Поиск последовательности элементов в массиве #3
rikimaru2013, у меня хеширование не в смысле шифрования. Задание для отработки темы "Поиск с хешированием". Нужно сделать поиск по хешам
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,660
11.06.2014, 03:20     Поиск последовательности элементов в массиве #4
Мне кажется, что если и обращаетесь за помощью, то лучше позабыть о вашем "правильном мнение" и прислушаться к людям, что хотят вам помочь )
Fantasmaforia
0 / 0 / 0
Регистрация: 10.12.2013
Сообщений: 48
11.06.2014, 03:24  [ТС]     Поиск последовательности элементов в массиве #5
rikimaru2013, просто я почти ничего не понял из того, что вы написали)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.06.2014, 03:40     Поиск последовательности элементов в массиве
Еще ссылки по теме:

Поиск элементов в массиве - C++
Пожалуйста,помогите решить задачи. 1)Дан одномерный массив А.Найти максимальный по модулю элемент данного массива 2)Даны два...

Поиск элементов в массиве - C++
помогите решить!! найти номера элементов массива М равных заданому числу А =5,количество элементов N= 15,от -10 до 10

Поиск неповторяющихся элементов в массиве - C++
Подскажите пожалуйста более умный алгоритм для поиска разных элементов в трёх массивах A,B,C. for(int i(0);i&lt;N;i++){ for(int...

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


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

Или воспользуйтесь поиском по форуму:
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,660
11.06.2014, 03:40     Поиск последовательности элементов в массиве #6
Yandex
Объявления
11.06.2014, 03:40     Поиск последовательности элементов в массиве
Ответ Создать тему
Опции темы

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