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

генератор уникальных паролей - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.75
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
06.06.2012, 13:40     генератор уникальных паролей #1
реализовать генератор уникальных паролей на С++ при помощи средств ООП
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BF_KARATEL
 Аватар для BF_KARATEL
11 / 11 / 0
Регистрация: 01.06.2012
Сообщений: 114
06.06.2012, 14:00     генератор уникальных паролей #2
randomize() ?
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
06.06.2012, 14:04  [ТС]     генератор уникальных паролей #3
Цитата Сообщение от BF_KARATEL Посмотреть сообщение
randomize() ?
пробовал, но там каждый 7-8 пароль похож на предыдущий
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
06.06.2012, 14:12     генератор уникальных паролей #4
Я этим если честно ни разу не занимался, но вот, что мне пришло первой мыслью в голову:
Для начало следует определить минимальную и максимальную длину пароля.
Далее я бы сделал 3 вида символов:
1 - цифра
2 - буква нижнего регистра
3 - буква верхнего регистра

Рандомно выбираем размер пароля между максимальной и минимальной длиной. Представляем его в виде массива символов. Для каждой позиции рандомно выбираем, будет ли она цифрой, буквой нижнего регистра или буквой верхнего регистра. Ну и останется дело за малым. Рандомно заполнить эти самые позиции, следуя их типу.
BF_KARATEL
 Аватар для BF_KARATEL
11 / 11 / 0
Регистрация: 01.06.2012
Сообщений: 114
06.06.2012, 14:15     генератор уникальных паролей #5
А вот так ?


srand(time(NULL));
chislo = rand();
miles_slade
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 47
06.06.2012, 14:30  [ТС]     генератор уникальных паролей #6
Цитата Сообщение от Toshkarik Посмотреть сообщение
Я этим если честно ни разу не занимался, но вот, что мне пришло первой мыслью в голову:
Для начало следует определить минимальную и максимальную длину пароля.
Далее я бы сделал 3 вида символов:
1 - цифра
2 - буква нижнего регистра
3 - буква верхнего регистра

Рандомно выбираем размер пароля между максимальной и минимальной длиной. Представляем его в виде массива символов. Для каждой позиции рандомно выбираем, будет ли она цифрой, буквой нижнего регистра или буквой верхнего регистра. Ну и останется дело за малым. Рандомно заполнить эти самые позиции, следуя их типу.
да да) я тоже так в тетради записал) но как код составить, не знаю
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 15:02     генератор уникальных паролей
Еще ссылки по теме:

Создать генератор паролей в котором можно указать длину пароля и количество паролей C++
C++ Генератор паролей
Генератор паролей создает один и тот же пароль C++
C++ Нахождение уникальных наборов
C++ Как создать генератор паролей с сохранением в блокнот?

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

Или воспользуйтесь поиском по форуму:
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
06.06.2012, 15:02     генератор уникальных паролей #7
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
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <ctime>
 
 
char randSym() {
   static const char *const symbolsArray[] = { "0123456789",
                                               "abcdefghijklmnopqrstuvwxyz",
                                               "ABCDEFGHIJKLMNOPQRSTUVWXYZ" };
   
   static const std::size_t symArrSize = sizeof( symbolsArray ) / sizeof( void * );
   
   std::size_t rnd = std::rand() % symArrSize;
   
   return symbolsArray[ rnd ][ std::rand() % strlen( symbolsArray[ rnd ])];
}
 
char *genPassword( const std::size_t size ) {
   char *temp = new char [ size + 1 ];
   
   for ( std::size_t i = 0; i < size; i++ )
      temp[ i ] = randSym();
   
   temp[ size ] = '\0';
   
   return temp;
}
 
int main() {
   std::size_t minSym = 4,
               maxSym = 10,
               pwdSize;
   
   char *password;
   
   std::srand( std::time( 0 ));
   
   for ( std::size_t i = 0; i < 10; i++ ) {
      pwdSize = minSym + std::rand() % ( maxSym - minSym + 1 );
      
      password = genPassword( pwdSize );
   
      std::cout << password << std::endl;
      
      delete [] password;
   }
   
   return 0;
}
Вывод.
Yandex
Объявления
06.06.2012, 15:02     генератор уникальных паролей
Ответ Создать тему
Опции темы

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