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

Генератор пароля - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Mledez
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 7
01.10.2009, 00:19     Генератор пароля #1
Помогите пожалуйста написать генератор паролей в С++, условие: 26 символов - ограничение, должен состоять из малых английских букв, ограничение длинны пароля 6 символов.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2009, 00:19     Генератор пароля
Посмотрите здесь:

C++ Генератор пароля
C++ генератор rand
Генератор паролей C++
C++ Генератор, гистограмма
C++ Генератор пароля
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
01.10.2009, 00:23     Генератор пароля #2
C++
1
2
3
4
char pass[7];
for(int i=0;i<6;i++)
pass[i] = (rand() % ( 'z'-'a' +1)) +'a';
pass[6]=0;
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
01.10.2009, 00:59     Генератор пароля #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template <typename T>  
struct ch
{
    ch(T a, T b) : a_(a), b_(b) { srand(static_cast<unsigned>(time(NULL))); }
 
    T operator()() const 
    {
        return rand() % (b_ - a_ + 1) + a_;
    }
 
    T a_, b_;
};
 
std::string generate(size_t len)
{
    std::string s;
    s.resize(len);
    std::generate(s.begin(), s.end(), ch<char>('a', 'z'));
    return s;
}
std::string s = generate(6);
XuTPbIu_MuHTAu
Эксперт C++
 Аватар для XuTPbIu_MuHTAu
2219 / 734 / 10
Регистрация: 27.05.2008
Сообщений: 1,507
01.10.2009, 01:17     Генератор пароля #4
Rififi, вряд ли автор вопроса поймет твой код,но мне он нравится)
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16833 / 5254 / 323
Регистрация: 30.03.2009
Сообщений: 14,149
Записей в блоге: 26
01.10.2009, 09:42     Генератор пароля #5
Не удержался
Mledez
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 7
01.10.2009, 14:26  [ТС]     Генератор пароля #6
XuTPbIu_MuHTAu все понятно спасибо. Rififi тоже понятно, и спасибо за разные варианты кода.

Добавлено через 5 минут
имеется ввиду спасибо обоим.
Rififi
 Аватар для Rififi
2330 / 1045 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
01.10.2009, 14:52     Генератор пароля #7
у меня там ошибочка оказывается - надо перед первой строкой дописать template <typename T>
Mledez
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 7
01.10.2009, 15:19  [ТС]     Генератор пароля #8
Ясно.
Mledez
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 7
12.10.2009, 19:14  [ТС]     Генератор пароля #9
Ошибка у меня в билдере шестом такая "" [Linker Fatal Error] Fatal: Unable to open file 'BCBCLXIDE.BPI' "" при попытке запустить исходный код с формой, тобишь прогу. что делать?
Mledez
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 7
12.10.2009, 23:46  [ТС]     Генератор пароля #10
Проблему решил.

Добавлено через 25 минут
Еще ребят 1 раз помогите пожалуйста, задача
Написать программу-генератор паролей
Программа должна выполнять следующие действия:
Ввод идентификатора пользователя с клавиатуры. Данный идентификатор представляет собой последовательность символов a1,a2...aN, где N – количество символов идентификатора (может быть любым), ai - i – ый символ идентификатора пользователя.
Формирование пароля пользователя b1,b2,,,bM для данного идентификатора, где M – количество символов пароля, и вывод его на экран. Алгоритм получения символов пароля bi указан далее.



требование к генератору:
Количество символов пароля 9
1. b1,b2...b1+Q это случайная цифра.
2. Оставшиеся символы пароля, кроме b9, - случайные малые буквы русские алфавита.
3. b9 это случайные символы из множества {!,”,#,$,%,&,’,(,),*}, где Q=Nmod5;
Mledez
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 7
13.10.2009, 18:45  [ТС]     Генератор пароля #11
Уже не надо, почистите тему пожалуйста.
mica
Сообщений: n/a
06.07.2011, 03:52     Генератор пароля #12
Похоже, рано или поздно все приходят к этой задаче о_О
Может стоило создать новую тему, но я терпеть-ненавижу дублировать одно и тоже десятки раз.. тем более что вопрос аналогичный.

Нужно создать ряд всех возможных комбинаций из введенных пользователем символов.

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

собсна вопрос:
Как вывести все возможные комбинации от 5 до 10-и символов из массива символов (и прописать все варианты в другой массив.. но это я наверное уже осилю))?
Гугль меня не спас

Заранее спасибо за подсказку.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
06.07.2011, 05:17     Генератор пароля #13
Цитата Сообщение от mica Посмотреть сообщение
все возможные комбинации от 5 до 10-и символов
ВСЕ???? комбинациии
в латинском алфавите 26 букв количество комбинаций 26 в 10 степени
если использовать большие и малые буквы и цифры 62 в 10
если использовать только то что ввел пользователь и то 10 в 10
Или я чего-то не понял?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
06.07.2011, 09:57     Генератор пароля #14
mica, эту тему почитайте...
mica
Сообщений: n/a
06.07.2011, 13:42     Генератор пароля #15
Цитата Сообщение от ValeryS Посмотреть сообщение
ВСЕ???? комбинациии
в латинском алфавите 26 букв количество комбинаций 26 в 10 степени
если использовать большие и малые буквы и цифры 62 в 10
если использовать только то что ввел пользователь и то 10 в 10
Или я чего-то не понял?
все комбинации но не из всех символов...

пользователь вводит необходимые 10 и идет работа только с ними


easybudda, сейчас изучу, спасибо!
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
06.07.2011, 14:08     Генератор пароля #16
Не проще ли STL использовать...
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include <algorithm>
int main(){
    std::string line;
    std::getline(std::cin, line);
    do  std::cout << line << std::endl; while (next_permutation(line.begin(),line.end()) );
    return 0;
}
voral
346 / 326 / 46
Регистрация: 16.03.2008
Сообщений: 1,698
06.07.2011, 15:57     Генератор пароля #17
Цитата Сообщение от mica Посмотреть сообщение
Нужно создать ряд всех возможных комбинаций из введенных пользователем символов.
Может быть как то так
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
#include <stdio.h>
static int size = 3; // размер словаря
static int lenght = 2; // размер последовательности
 
// опеределяем использовался ли данный символ
int exists(char *var, char c)
{
    while (*var!='\0')
    {
        if (*var==c) return 1;
        ++var;
    }
    return 0;
}
// посик и вывод последовательностей
void printVar(char *a,int level, int len ,char *var)
{
    char *tmp = a;
    for(tmp=a;(*tmp)!='\0';++tmp)
    {
        *(var+level)='\0';
        if (exists(var,*tmp)==0)
        {
            *(var+level-1)=*tmp;
            if (level==len)
                printf("%s\n",var);
            else
                printVar(a,level+1,len,var);
        }
    }
}
 
int main()
{
    char *arr= "abcd";
    char var[lenght+1];
    var[lenght]='\0';
    printVar(arr,1,lenght,var);
    return 0;
}
Добавлено через 3 минуты
lenght можно не протаскивать качестве параметра это пережиток попыток
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2011, 21:37     Генератор пароля
Еще ссылки по теме:

Генератор пароля. Оцените его компактность и непредсказуемость C++
Генератор на С++ C++
Создать генератор паролей в котором можно указать длину пароля и количество паролей C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,057
06.07.2011, 21:37     Генератор пароля #18
Цитата Сообщение от mica Посмотреть сообщение
пользователь вводит необходимые 10 и идет работа только с ними
в результате 10! комбинаций
есть еще один прикол при решении в лоб
если ввести
ааа
то
комп честно отарабанит тебе 6 раз ааа
поскольку честно будет перестовлять все буквы
есть два решения(по крайней мере я так вижу)
1решение
сгенерить все последовательности
повторы выбросить
2 решение
подсчитать количество разных символов введеных пользователем
провести частотный анализ (сколько раз повторяется каждый символ)
из полученого результата генерить последовательности
Yandex
Объявления
06.07.2011, 21:37     Генератор пароля
Ответ Создать тему
Опции темы

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