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

  • Автор темы Charley2
  • Дата начала
C

Charley2

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

Код:
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;
}

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

Monarh

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

Charley2

#4
Нет я имею в виду не совмещать,а СОЗДАТЬ такой код, который содержит произвольное кол-во букв и цифр, чередующих между собой в произвольном порядке, например:
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 буквы )
 

Monarh

Active member
14.02.2009
34
0
#5
Выбирай что генерировать Цифру или Букву по рандому:
Код:
for (i = 0; i < 9; i++)	// Сгенерировать 9 символов
if( (rand()%1000)/2 )
Генерируем_Цифру
else
Генерируем_Букву
 
C

Charley2

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