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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
Mledez
0 / 0 / 0
Регистрация: 01.10.2009
Сообщений: 7
#1

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

01.10.2009, 00:19. Просмотров 2443. Ответов 17
Метки нет (Все метки)

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

Генератор пароля - C++
Добрый вечер. Нужно написать программу-генератор паролей. Программа должна выполнять следующие действия: a) Ввод идентификатора...

Генератор пароля - C++
Напишите функцию, которая случайным образом генирирует пароль из 8 символов. В пароле должны присутствовать только латинские буквы и цифры ...

Как реализовать генератор пароля? - C++
условия: 1.выбор длина 2.Выбор букв(заглавные или нет \ или оба) 3. Выбирать Число или нет 4.Выбирать символы или нет //...

Генератор пароля. Оцените его компактность и непредсказуемость - C++
Сделал за 10 минут генератор. Оцените компактность и непредсказуемость(рандомность) пароля, пожалуйста :) #include<conio.h> ...

Генератор рандома - C++
Привет всем :) В универе задали написать генератор случайных чисел, имеющий интерфейс для задания диапазона и типа случайных чисел, не...

Генератор текста - C++
Добрый день. Вот начинаю осваиваться с C++, но абсолютно не владею функциями рандома. Может кто-нибудь если не сложно уделить 5-7 минут...

Генератор, гистограмма - C++
Здравствуйте! Задание такое: нужно по значениям генератора псевдослучайных чисел построить гистограмму. Не подскажете, как это осуществить?

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
XuTPbIu_MuHTAu
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
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
2338 / 1053 / 44
Регистрация: 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
Эксперт С++
2224 / 739 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
01.10.2009, 01:17     Генератор пароля #4
Rififi, вряд ли автор вопроса поймет твой код,но мне он нравится)
Evg
Эксперт CАвтор FAQ
17468 / 5706 / 362
Регистрация: 30.03.2009
Сообщений: 15,663
Записей в блоге: 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
2338 / 1053 / 44
Регистрация: 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
Модератор
6539 / 5005 / 461
Регистрация: 14.02.2011
Сообщений: 16,648
06.07.2011, 05:17     Генератор пароля #13
Цитата Сообщение от mica Посмотреть сообщение
все возможные комбинации от 5 до 10-и символов
ВСЕ???? комбинациии
в латинском алфавите 26 букв количество комбинаций 26 в 10 степени
если использовать большие и малые буквы и цифры 62 в 10
если использовать только то что ввел пользователь и то 10 в 10
Или я чего-то не понял?
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
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
1927 / 1193 / 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
410 / 390 / 51
Регистрация: 16.03.2008
Сообщений: 1,932
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++ генератор приглашений по следующим требованиям: Имеется список имен (файл1) и шаблон...

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

Генератор объектов - C++
Я пишу консольную игру, и планирую сделать её с пароякой режимов. Например: 1) Режим прохождения - игрок по очереди сражается с каждым...

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

генератор rand - C++
Добрый вечер! Возникла проблема с генератором rand. Нужно немного подредактировать код Условие задачи По самолёту проводится 3...


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

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

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