Генератор пароля

Тема в разделе "Общие вопросы по С и С++", создана пользователем Charley2, 27 авг 2009.

  1. Charley2

    Charley2 Гость

    Решил сделать прогу, генерирующую численно-буквенные пароли и записывающюю их в текстовый файл. Ну тут у меня встал вопрос как совмещать числа и буквы допустим в 9-значном пароле? Так чтобы числа и буквы чередовались между собой в произвольном порядке, а также число букв и чисел тоже должно быть произвольным, например: s92j4iai2, 3klb83n341 и т.д. Генерацию чисел и букв я сделал, но как их совместить - для меня вопрос
    Привожу куски проги:

    Код (Text):
    if (RadioButton3->Checked) {
    for ( i = 0; i < 9; i++ )   //генерация численного кода
    {
    b = rand()%10;
    a = a + b;
    if (a > 0)
    {
    a *=10;
    }
    else
    i--;
    }
    b = rand()%10;
    a = a + b;
    Edit1->Text = a; //вывод строку ред. кода
    f = a;
    a=b=0;
    }
    ....

    if (RadioButton4->Checked) { //генерация буквенного кода
    for ( i = 0; i < 10; i++ )
    {
    c[i] = (rand()%26)+65;
    g[i] = c[i];
    Edit1->Text = c;  //вывод в строку ред. кода
    }
    for ( i = 0; i < 10; i++ )
    {
    c[i] = NULL;
    }

    }
    Если не понятно могу выложить всю прогу.
     
  2. etc

    etc Гость

    Юзайте GUID
     
  3. Monarh

    Monarh Active Member

    Регистрация:
    14 фев 2009
    Сообщения:
    34
    Симпатии:
    0
    Как вариант:
    пароль хранить в string
    Код (Text):
    #include <string>                                                     // Библиотека работы со Строками.
    using namespace std;
    string Password;
    Password += "Сгенерированная_Буква";
    Password += itoa( "Сгенерированная_Цифра" );
    или проще для Цифры:
    Код (Text):
    Password += char( "Сгенерированная_Цифра" + 48 ); // 48 - код нуля
     
  4. Charley2

    Charley2 Гость

    Нет я имею в виду не совмещать,а СОЗДАТЬ такой код, который содержит произвольное кол-во букв и цифр, чередующих между собой в произвольном порядке, например:
    d89hwm2kv, 1m0dmc371 и т.д. (9-значный пароль)
    [codebox]Ansistring key;
    ...
    if (RadioButton5->Checked) {
    for (i = 0; i < 3; i++)
    {
    c = (rand()%26)+65;
    }
    for ( i = 0; i < 2; i++ )
    {
    b = rand()%10;
    a = a + b;
    if (a > 0)
    {
    a *=10;
    }
    else
    i--;
    }
    b = rand()%10;
    a = a + b;
    for (i = 0; i < 3; i++)
    {
    m = (rand()%26)+65;
    }
    key = c + IntToStr(a) + m; //создаем пароль
    Edit1->Text = key;
    a=b=0;
    }[/codebox]

    Получаются однотипные пароли: ZNJ803ICI, PDO139RPD, WUG753JXH (3 буквы + 3 цифры + 3 буквы )
     
  5. Monarh

    Monarh Active Member

    Регистрация:
    14 фев 2009
    Сообщения:
    34
    Симпатии:
    0
    Выбирай что генерировать Цифру или Букву по рандому:
    Код (Text):
    for (i = 0; i < 9; i++) // Сгенерировать 9 символов
    if( (rand()%1000)/2 )
    Генерируем_Цифру
    else
    Генерируем_Букву
     
  6. Charley2

    Charley2 Гость

    Сделал по-другому, но все-равно спасибо за идею.
     
  7. Monarh

    Monarh Active Member

    Регистрация:
    14 фев 2009
    Сообщения:
    34
    Симпатии:
    0
    Всегда Пожалуйста :)
     
Загрузка...

Поделиться этой страницей