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

программка должна генерировать безопасный пароль - C++

Восстановить пароль Регистрация
 
RUS1313
2 / 2 / 0
Регистрация: 08.01.2010
Сообщений: 150
25.09.2011, 20:30     программка должна генерировать безопасный пароль #1
вероятность подбора-Р=10 в минус 5 степени. скорость перебора паролей-V= 15 паролей\мин. максимальный срок действия пароля-Т=2неделли. программка должна сгенерировать 5 безопасных паролей при условиии что мощность алфавита для паролей равна 26. я уже какой день мучаюсь а ни к чему умному или даже криво работающему не пришел.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2011, 20:30     программка должна генерировать безопасный пароль
Посмотрите здесь:

C++ Зачем генерировать код программы написанный на С++ в UML??????
C++ безопасный массив
Безопасный список в многопоточной программе C++
Генерировать последовательности C++
C++ Как генерировать текст по шаблону
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
25.09.2011, 20:37     программка должна генерировать безопасный пароль #2
Тут есть одна тонкость.
Я могу реализовать такую херь с вероятностью подбора именно 10 в минус пятой.
Но для этого совсем необязательно использовать все 26 букв, достаточно и 10-ти, надёжность не потеряется от этого. Так что тут надо разобраться с условием.
RUS1313
2 / 2 / 0
Регистрация: 08.01.2010
Сообщений: 150
25.09.2011, 20:44  [ТС]     программка должна генерировать безопасный пароль #3
буду благодарен если сделаешь с 26
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.09.2011, 20:47     программка должна генерировать безопасный пароль #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Простенькая генерилка паролей из 8 букв. Без понятия, что там с надёжностью, но можно взять за основу и шаманить, пока не примут...
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#define PASS_LEN 8
 
char * pass(char * buf, size_t size){
    char * ptr = buf;
    while ( size-- )
        *ptr++ = rand() % ( 'z' - 'a' + 1 ) + 'a';
    *ptr = '\0';
    
    return buf;
}
 
int main(void){
    char buf[PASS_LEN + 1];
    int i;
    
    srand(time(NULL));
    
    for ( i = 0; i < 10; ++i )
        printf("%s\n", pass(buf, PASS_LEN));
        
    return 0;
}
RUS1313
2 / 2 / 0
Регистрация: 08.01.2010
Сообщений: 150
25.09.2011, 20:52  [ТС]     программка должна генерировать безопасный пароль #5
а в чем проблемма, я скомпилил данный код а консоль появляеться и ее сразу выбивает
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
25.09.2011, 21:16     программка должна генерировать безопасный пароль #6
Цитата Сообщение от RUS1313 Посмотреть сообщение
а в чем проблемма
в этом.
Ierehon
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 130
25.09.2011, 21:27     программка должна генерировать безопасный пароль #7
Цитата Сообщение от RUS1313 Посмотреть сообщение
а в чем проблемма, я скомпилил данный код а консоль появляеться и ее сразу выбивает
Перед

C
1
return 0;
поставь

C
1
2
 getch();
return 0;
и подключи

C
1
#include <conio.h>
#pragma
Временно недоступен
 Аватар для #pragma
952 / 223 / 6
Регистрация: 12.04.2009
Сообщений: 921
26.09.2011, 05:58     программка должна генерировать безопасный пароль #8
Вот тоже решил сварганить
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
/* -------------------------------------------------------------------------- */
#define PASS_STRENGTH 8
/* -------------------------------------------------------------------------- */
 
int generate (const char* const charset, const size_t charset_size,
                                         const size_t strength, char* dest);
 
/* -------------------------------------------------------------------------- */
int main()
{
   char alphabet[] = { 'A','Q','W','E','R','T','Y','U','I','O','P','{','}','A',
                       'S','D','F','G','H','J','K','L',':','Z','X','C','V','B',
                       'N','M','<','>','?','!','@','#','$','%','^','&','*','(',
                       ')','_','+','|','"','1','2','3','4','5','6','7','8','9',
                       '0','-','=','/','q','w','e','r','t','y','u','i','o','p',
                       '[',']','a','s','d','f','g','h','j','k','l',';','z','x',
                       'c','v','b','n','m',',','.',                           };
 
   int    result;
   char*  password;
   size_t size          = sizeof(alphabet);
   size_t pass_strength = PASS_STRENGTH;
 
   srand ((unsigned)time(NULL));
 
   password = malloc( size + 1); /*  + 1 for \0   */
 
   if (password == NULL) {
      fprintf( stderr, "[ ERROR: main(): malloc(): Not enough memory ]\n");
      return -1;
   }
 
   result = generate( alphabet, size, pass_strength, password );
 
   if (result != 0) {
      fprintf( stderr, "[ ERROR: main(): generate() has returned an error ]\n");
      return -1;
   }
 
   password[ size + 1] = '\0';
 
   fprintf( stdout, "[ INFO: The password is: %s ]\n", password);
 
   return 0;
}
/* -------------------------------------------------------------------------- */
int
generate (const char* const charset, const size_t charset_size,
                                     const size_t strength, char* dest)        {
 
   char* password;
   size_t i;
 
   if (dest == NULL      || charset == NULL        ||
       charset_size == 0 || strength > charset_size   ) {
      fprintf( stderr, "[ ERROR: generate(): Invalid parameters ]\n");
      return -1;
   }
 
   password = malloc(charset_size);
 
   if (password == NULL) {
      fprintf( stderr, "[ ERROR: generate(): malloc(): Not enough memory ]\n");
      return -2;
   }
 
   for (i = 0; i < strength; ++i) {
      password[i] = charset[ (rand() % charset_size) ];
   }
 
   memcpy( dest, password, charset_size);
   free  (password);
 
   return 0;
}
/* -------------------------------------------------------------------------- */
Если хочется - можно модифицировать так, чтобы генерировался не один пароль,а 5. Набор символов я взял немного расширенный.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.09.2011, 06:48     программка должна генерировать безопасный пароль #9
kravam, 26 это мощность алфавита, т.е. общее количество символов, которые могут быть использованы в пароле.

Добавлено через 16 минут
Для общего развития http://stavkombez.ru/method/TOKB/ind...lab/lab_2.html
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
26.09.2011, 09:51     программка должна генерировать безопасный пароль #10
Ну вот, парольку генерит, вероятность подбора именно 10 в минус пятой ни больше ни меньше
Использует все 26 знаков, правда с разной частотой ну это фигня.

Добавлено через 25 секунд
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int  main(void) {       
 
 char* p [5] ;
 
 
 char pervii_znak []= "abcdefghij";
 char vtoroi_znak []= "klmnopqrst";
 char tretii_znak []= "uvwxyzabcd";
 char chetvo_znak []= "efghijklmn";
 char patii__znak []= "opqrstuvwx";
 
 p[0]= pervii_znak;
 p[1]= vtoroi_znak;
 p[2]= tretii_znak;
 p[3]= chetvo_znak;
 p[4]= patii__znak;
 
 srand (time(0));
 rand();
 for (int i= 0;i< 5; i++) {
  printf ("%c", p[i] [rand ()%10]); 
 }
 
 getchar ();
 
 return 0;
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.09.2011, 11:27     программка должна генерировать безопасный пароль #11
kravam, не хотелось бы тебя расстраивать, но для выполнения условия задачи требуется длина пароля как минимум 8 символов. Причем каждый символ пароля может принимать любое значение из алфавита.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
26.09.2011, 15:59     программка должна генерировать безопасный пароль #12
Я вообще не понял условие задачи до конца. Понял только десять в минус пятой и 26 знаков. Вот это у меня соблюдается.
Значит, имеем: 5 знаков, каждый может принимать 10 разных значений. Комбинаций то есть 10*10*10*10*10, вот 10 в минус пятой и будет.

При чём, достаточно было бы задействовать всего 10 букв алфавита я об этом уже писал. Ну раз надо 26 то вот ему 26. Если будешь опровергать давай предметнее, безо всякой жалости. С цифрами, тык скыть в руках.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.09.2011, 16:07     программка должна генерировать безопасный пароль #13
В 9 посте я ссылку давал, там есть пример как все это расчитывается.
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
26.09.2011, 16:11     программка должна генерировать безопасный пароль #14
Ты бы уж на гугл сразу дал ссыль, чё мелочиться-то.
Давай по моему сообщению номер 12, оно маленькое, на глазах. Защищаются всего два факта: 10 в минус пятой и количество букв, равное 26-ти. Чё не так?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
26.09.2011, 16:20     программка должна генерировать безопасный пароль #15
Цитата Сообщение от kravam Посмотреть сообщение
Комбинаций то есть 10*10*10*10*10, вот 10 в минус пятой и будет.
10*10*10*10*10 = 10^5 Это ты посчитал количество всех возможных комбинаций для пароля длиной 5 символов, использующий 10 символов.
В условии же 10^-5 это вероятность подбора пароля
Цитата Сообщение от RUS1313 Посмотреть сообщение
вероятность подбора-Р=10 в минус 5 степени.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2011, 16:34     программка должна генерировать безопасный пароль
Еще ссылки по теме:

C++ пользователь вводит пароль,программа должна его вычислить перебором
C++ Безопасный массив
C++ Создать программу, которая способна генерировать геометрические примитивы

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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
26.09.2011, 16:34     программка должна генерировать безопасный пароль #16
Да, относительно терминов я прокололся что-то.
Yandex
Объявления
26.09.2011, 16:34     программка должна генерировать безопасный пароль
Ответ Создать тему
Опции темы

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