• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

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

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

Charley2

Решил сделать прогу, генерирующую численно-буквенные пароли и записывающюю их в текстовый файл. Ну тут у меня встал вопрос как совмещать числа и буквы допустим в 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;
}

}

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

Monarh

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

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 буквы )
 
M

Monarh

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

Charley2

Сделал по-другому, но все-равно спасибо за идею.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!