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

Прокомментировать код - C++

Восстановить пароль Регистрация
 
kirillivankin
0 / 0 / 0
Регистрация: 27.07.2014
Сообщений: 35
29.07.2014, 10:34     Прокомментировать код #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
int main(){
    const int PASSWORD_LENGTH=10;
    const char * CORRECT_PASSWORD="130f1a8e9e102707f3f91b010f151b0b";
    char *md5buf;
 
    char buf[PASSWORD_LENGTH];
    setlocale( LC_ALL,"Russian" );
 
    cin.exceptions(istream::failbit | istream::badbit);
    
    do {
        try {
            cout << "Введите пароль: ";
            cin.getline(buf, PASSWORD_LENGTH);
            md5buf=new char[md5(buf).size()+1];
            strcpy (md5buf, md5(buf).c_str());
        }
        catch ( istream::failure e ) 
    {
            system("cls");
            cerr << "Пароль должен быть короче, нажмите Enter, чтобы попробывать еще раз..." << endl;
            cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n');    
            getchar();
    }
        system("cls");
    } while ( strcmp(md5buf, CORRECT_PASSWORD) );
    delete[] md5buf;
     secret();
     getchar();
     return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2014, 10:34     Прокомментировать код
Посмотрите здесь:

Прокомментировать код C++
Прокомментировать код C++
Прокомментировать код C++
C++ Прокомментировать код
Прокомментировать код C++
Прокомментировать код C++
C++ Прокомментировать код
C++ Прокомментировать код
Прокомментировать код C++
C++ Прокомментировать код
C++ Прокомментировать код
C++ Прокомментировать код

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7955 / 4717 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
29.07.2014, 11:08     Прокомментировать код #2
kirillivankin, Что вы хотите понять? Сравнение md5 хешей паролей. Эталон забит в коде (CORRECT_PASSWORD), дальше введенный пароль хешируется и сверяется с эталоном, попытки продолжаются до введения корректного пароля.

ЗЫ
C++
1
2
md5buf=new char[md5(buf).size()+1];
strcpy (md5buf, md5(buf).c_str());
Это просто ядерный писец. На кой фиг два вызова md5?
C++
1
2
3
const std::string hash = md5(buf);
md5buf = new char[hash.size() + 1];
strcpy(md5buf, hash.c_str());
kirillivankin
0 / 0 / 0
Регистрация: 27.07.2014
Сообщений: 35
29.07.2014, 11:25  [ТС]     Прокомментировать код #3
что такое md5?))
C++
1
const int PASSWORD_LENGTH=10;
вот эта строка не понятна,
вот эта команда const int
вот эта команда
C++
1
const char * CORRECT_PASSWORD="130f1a8e9e102707f3f91b010f151b0b";
вот эта
try {
вот эта
C++
1
cin.exceptions(istream::failbit | istream::badbit
вот эта
C++
1
system("cls")
вот эта cerr
вот эта
C++
1
delete[] md5b
вот эти
C++
1
2
cin.clear();
            cin.ignore(numeric_limits<streamsize>::max(), '\n')
и эти
C++
1
2
3
cin.getline(buf, PASSWORD_LENGTH);
            md5buf=new char[md5(buf).size()+1];
            strcpy (md5buf, md5(buf).c_str())
Senarist
34 / 34 / 10
Регистрация: 14.03.2014
Сообщений: 540
29.07.2014, 11:32     Прокомментировать код #4
kirillivankin Если вам ничто не понятно то откуда это у вас, а точнее зачем?
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7955 / 4717 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
29.07.2014, 11:42     Прокомментировать код #5
kirillivankin, А вот это я уже объяснять не собираюсь, любой учебник в зубы и вперед (так же поможет гугл). md5
Jewbacabra
1921 / 1585 / 572
Регистрация: 24.04.2014
Сообщений: 4,501
29.07.2014, 11:42     Прокомментировать код #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от kirillivankin Посмотреть сообщение
что такое md5?))
http://ru.wikipedia.org/wiki/MD5
Цитата Сообщение от kirillivankin Посмотреть сообщение
вот эта команда const int
http://habrahabr.ru/post/59558/
Цитата Сообщение от kirillivankin Посмотреть сообщение
cin.exceptions(istream::failbit | istream::badbit
http://www.cplusplus.com/reference/ios/ios/exceptions/
Цитата Сообщение от kirillivankin Посмотреть сообщение
try {
http://msdn.microsoft.com/ru-ru/library/6dekhbbc.aspx
Цитата Сообщение от kirillivankin Посмотреть сообщение
system("cls")
http://support.microsoft.com/kb/99261/ru
Цитата Сообщение от kirillivankin Посмотреть сообщение
вот эта cerr
http://www.cplusplus.com/reference/iostream/cerr/
Цитата Сообщение от kirillivankin Посмотреть сообщение
delete[] md5b
http://www.cplusplus.com/reference/n...rator%20delete[]/
Цитата Сообщение от kirillivankin Посмотреть сообщение
cin.clear();
http://www.cplusplus.com/reference/ios/ios/clear/
Цитата Сообщение от kirillivankin Посмотреть сообщение
cin.ignore(numeric_limits<streamsize>::max(), '\n')
http://www.cplusplus.com/reference/i...stream/ignore/
Цитата Сообщение от kirillivankin Посмотреть сообщение
cin.getline(buf, PASSWORD_LENGTH);
http://www.cplusplus.com/reference/i...tream/getline/
Цитата Сообщение от kirillivankin Посмотреть сообщение
md5buf=new char[md5(buf).size()+1];
http://ru.wikipedia.org/wiki/New_(C%2B%2B)
Цитата Сообщение от kirillivankin Посмотреть сообщение
strcpy (md5buf, md5(buf).c_str())
http://www.cplusplus.com/reference/cstring/strcpy/

kirillivankin, на каждый вопрос 1-2 результат googla. Неужели так сложно было это сделать самому, а еще лучше почитать учебник по C++
Yandex
Объявления
29.07.2014, 11:42     Прокомментировать код
Ответ Создать тему
Опции темы

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