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

Простые программы (генератор ключей) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Romantikkk
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 144
04.02.2013, 15:24     Простые программы (генератор ключей) #1
Подскажите, пожалуйста, как в в программке сделать так, чтобы в ней под каждым новым вызовом вводилось новое число или буква (заглавная или строчная) - что-то типа генератора ключей. Если можно, пример. Заранее спасибо)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
04.02.2013, 15:49     Простые программы (генератор ключей) #2
Я не понял вас. Опишите вопрос нормально.
Romantikkk
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 144
04.02.2013, 15:50  [ТС]     Простые программы (генератор ключей) #3
как написать программку типа генератора ключей?
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
04.02.2013, 15:52     Простые программы (генератор ключей) #4
ключи вас интересуют цифровые или буквенно цифровые?
Romantikkk
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 144
04.02.2013, 15:56  [ТС]     Простые программы (генератор ключей) #5
буквенно-цифровые.
Troll_Face
 Аватар для Troll_Face
599 / 399 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
04.02.2013, 16:40     Простые программы (генератор ключей) #6
random курите.
Romantikkk
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 144
04.02.2013, 18:15  [ТС]     Простые программы (генератор ключей) #7
как рандом для буквенно-циферного алфавита??? я только для циферного знаю.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
04.02.2013, 18:34     Простые программы (генератор ключей) #8
Цитата Сообщение от Romantikkk Посмотреть сообщение
как рандом для буквенно-циферного алфавита??? я только для циферного знаю.
Цитата Сообщение от Romantikkk Посмотреть сообщение
как рандом для буквенно-циферного алфавита??? я только для циферного знаю.
ну например если random от 0 до 30:
x = rand(0..30)
от 0 до 9 - цифры, имеют сдвиг 0x30 в таблице симоволов,
от 10 до 30 - допустим большие буквы... (аналогично можно сделать и мелкие)
значит берём свдиг для большой A и прибавляем к нему (x-10), для числа x=10 это будет "A"

конкретный пример:
C++
1
2
3
4
5
    std::string s;
 
    s = (0+0x30);   // Вернёт "0",
    s = (0+0x41);  // Вернёт большую латинскую "A"
    s = (0+0x61);  // Вернёт латинскую "a"
соответственно если вместо нуля написать 1, по коду будет "1","B" и "b"
Romantikkk
0 / 0 / 0
Регистрация: 19.10.2012
Сообщений: 144
04.02.2013, 18:37  [ТС]     Простые программы (генератор ключей) #9
ооо... спасибо)))
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
04.02.2013, 18:53     Простые программы (генератор ключей) #10
Код не лучший ) но как пример можешь глянуть:

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
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
 
    char * alph = new char[52];
 
    const size_t key_size = 20;
 
    //-----------------------------------
    int id = 0;
    char val = 65;
 
    for( ; val < 91 ; ++val,++id)
    {
        alph[id] = val;
    }
    for( val = 97 ; val < 123 ; ++val,++id)
    {
        alph[id] = val;
 
    }
    //--------------------------------------
 
    srand(time(NULL));
    char * out = new char[key_size];
    for ( int i = 0  ; i < key_size  ; ++i )
    {
        if(rand()%2)
        {
            out[i] = alph[rand()%52];
        }
        else
        {
            out[i] = ( rand()%10 ) +48;
        }
    }
    cout << out << endl;
    return 0;
}
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
04.02.2013, 19:10     Простые программы (генератор ключей) #11
Вот еще приблизительно такой пример где я на форуме видел:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <random>
#include <array>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::array<std::uniform_int_distribution<>, 4>  key =
    {
        std::uniform_int_distribution<>('a', 'z'),
        std::uniform_int_distribution<>('A', 'Z'),
        std::uniform_int_distribution<>('0', '9'),
        std::uniform_int_distribution<>(0, 2)
    };
    for(std::size_t i = 0; i < 20; ++i)
            std::cout<<static_cast<char>(key[key[3](gen)](gen));
    std::cout<<std::endl;
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2013, 21:07     Простые программы (генератор ключей)
Еще ссылки по теме:

C++ Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа
C++ Динамический массив, много циклов и простые числа. Как ускорить работу программы ?
Генератор Парка и Миллера. Вывод данных из программы C++

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

Или воспользуйтесь поиском по форуму:
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
04.02.2013, 21:07     Простые программы (генератор ключей) #12
Делал я когда-то похожее...
Вложения
Тип файла: rar password_generator.rar (1.51 Мб, 62 просмотров)
Yandex
Объявления
04.02.2013, 21:07     Простые программы (генератор ключей)
Ответ Создать тему
Опции темы

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