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

Генерация паролей - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Ксения
Сообщений: n/a
27.11.2007, 13:20     Генерация паролей #1
Помогите, пожалуйста, уважаемый программисты!!

сочно нужна простенькая задачка (текст) по генерации паролей!!! к сожалению нет возможности поискать по интернету сейчас, а тем более поискать, но нужно очень срочно!!! пожааалуйста!! может у кого нибудь уже есть?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2007, 13:20     Генерация паролей
Посмотрите здесь:

генератор паролей C++
C++ Генератор паролей
Шифровальщик паролей C++
C++ подбор паролей
генератор паролей C++
взлом паролей C++
C++ Генератор паролей (нужна проверка)
C++ генератор уникальных паролей
Генератор паролей C++
C++ Генератор паролей
C++ Генератор паролей
Сгенерировать список паролей C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mik-a-el
CyberForum Owner
 Аватар для mik-a-el
56413 / 36163 / 231
Регистрация: 10.04.2006
Сообщений: 12,600
27.11.2007, 13:37     Генерация паролей #2
Код на делфях, но зато с подробными комментариями:
Код
// запускаем генератор случайных чисел (только при старте приложения).
procedure tform1.formcreate(sender: tobject);
begin
randomize;
end;

function randompwd(pwlen: integer): string;
// таблица символов, используемых в пароле
const strtable: string =
'!#$%&/()=?@<>|{[]}*~+#;:.-_' +
'abcdefghijklmabcdefghijklm' +
'0123456789' +
'ДЦЬдцьЯ' +
'nopqrstuvwxyznopqrstuvwxyz';
var
n, k, x, y: integer;
begin
// проверяем максимальную длину пароля
if (pwlen > length(strtable)) then k := length(strtable)-1
else k := pwlen;
setlength(result, k); // устанавливаем длину конечной строки
y := length(strtable); // Длина Таблицы для внутреннего цикла
n := 0; // начальное значение цикла

while n < k do begin // цикл для создания k символов
x := random(y) + 1; // берём следующий случайный символ
// проверяем присутствие этого символа в конечной строке
if (pos(strtable[x], result) = 0) then begin
inc(n); // символ не найден
result[n] := strtable[x]; // теперь его сохраняем
end;
end;
end;

procedure tform1.button1click(sender: tobject);
var
cpwd: string;
begin
// вызываем функцию генерации пароля из 30 символов
cpwd := randompwd(30);
// ...
end;
mik-a-el
CyberForum Owner
 Аватар для mik-a-el
56413 / 36163 / 231
Регистрация: 10.04.2006
Сообщений: 12,600
27.11.2007, 13:40     Генерация паролей #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Генератор криптостойкого пароля на Visual C++
Код
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <iostream.h>
#define MaxPassLen 14

// интервалы кодов символов
#define FirstUpCaseLet  65
#define LastUpCaseLet   90
#define FirstLowCaseLet 97
#define LastLowCaseLet  122
#define FirstNum        48
#define LastNum         57
#define FirstSym        33
#define LastSym         47

#define ZeroSt			4
#define LowCaseLetSt	0
#define UpCaseLetSt		1
#define NumberSt        2
#define SymbolSt        3

int main ()
{
  int i=0;
  int OptionLowerCaseLetters=0;
  int OptionUpperCaseLetters=0;
  int OptionNumbers=0;
  int OptionSymbols=0;

  time_t StRand=0;
  int Generator[ZeroSt] = {0};
  int Choice[ZeroSt] = {0};

  char Password[MaxPassLen] = {0};
  int MaxNoOfChars=0;
  cout << "Input pLen" << endl;
  cin >> MaxNoOfChars;
  cout << endl;
  cout << "Choose the Symbols of which pass will consist" << endl;
  cout << "LowerCaseLetters - ";
  cin >> OptionLowerCaseLetters;
  cout << "\nUpperCaseLetters - ";
  cin >> OptionUpperCaseLetters;
  cout << "\nNumberSt - ";
  cin >> OptionNumbers;
  cout << "\nSymbolSt - ";
  cin >> OptionSymbols;
  cout << endl;

srand((unsigned)time(&StRand));
// начальное значение генератора
for (i = 0; i < MaxPassLen; i++)
{
  if (i < MaxNoOfChars)
  {
    Generator[LowCaseLetSt]=FirstLowCaseLet + 
		(rand() % (LastLowCaseLet+1 - FirstLowCaseLet));
    Generator[UpCaseLetSt]=FirstUpCaseLet + 
		(rand() % (LastUpCaseLet+1 - FirstUpCaseLet)); 
    Generator[NumberSt]=FirstNum + 
		(rand() % (LastNum+1 - FirstNum)); 
    Generator[SymbolSt]=FirstSym + 
		(rand() % (LastSym+1 - FirstSym)); 

    if (OptionLowerCaseLetters) 
      Password[i]=(char)Generator[LowCaseLetSt];
    if (OptionUpperCaseLetters) 
      Password[i]=(char)Generator[UpCaseLetSt];
    if (OptionNumbers) 
      Password[i]=(char)Generator[NumberSt];
    if (OptionSymbols) 
      Password[i]=(char)Generator[SymbolSt];
    if ((OptionLowerCaseLetters) && (OptionUpperCaseLetters))
    {
      Choice[LowCaseLetSt]=rand () %2;
      Choice[UpCaseLetSt]=rand () %2;
      if (Choice[LowCaseLetSt])
      {
        Password[i]=(char)Generator[LowCaseLetSt];
      }
      else if (Choice[UpCaseLetSt])
      {
        Password[i]=(char)Generator[UpCaseLetSt];
      }
    }
    if ((OptionLowerCaseLetters) && (OptionNumbers))
    {
      Choice[LowCaseLetSt]=rand() %2;
      Choice[NumberSt]=rand() %2;
      if (Choice[LowCaseLetSt])
      {
        Password[i]=(char)Generator[LowCaseLetSt];
      }
      else if (Choice[NumberSt])
      {
        Password[i]=(char)Generator[NumberSt];
      }
    }
    if ((OptionLowerCaseLetters) && (OptionSymbols))
    {
      Choice[LowCaseLetSt]=rand() %2;
      Choice[SymbolSt]=rand() %2;
      if (Choice[LowCaseLetSt])
      {
        Password[i]=(char)Generator[LowCaseLetSt];
      }
      else if (Choice[SymbolSt])
      {
        Password[i]=(char)Generator[SymbolSt];
      }
    }
    if ((OptionUpperCaseLetters) && (OptionNumbers))
    {
      Choice[UpCaseLetSt]=rand() %2;
      Choice[NumberSt]=rand() %2;
      if (Choice[UpCaseLetSt])
      {
        Password[i]=(char)Generator[UpCaseLetSt];
      }
      else if (Choice[NumberSt])
      {
        Password[i]=(char)Generator[NumberSt];
      }
    }
    if ((OptionUpperCaseLetters) && (OptionSymbols))
    {
      Choice[UpCaseLetSt]=rand() %2;
      Choice[SymbolSt]=rand() %2;
      if (Choice[UpCaseLetSt])
      {
        Password[i]=(char)Generator[UpCaseLetSt];
      }
      else if (Choice[SymbolSt])
      {
        Password[i]=(char)Generator[SymbolSt];
      }
    }
    if ((OptionNumbers) && (OptionSymbols))
    {
      Choice[NumberSt]=rand() %2;
      Choice[SymbolSt]=rand() %2;
      if (Choice[NumberSt])
      {
        Password[i]=(char)Generator[NumberSt];
      }
      else if (Choice[SymbolSt])
      {
        Password[i]=(char)Generator[SymbolSt];
      }
    }
    if ((OptionLowerCaseLetters) && (OptionUpperCaseLetters) 
		&& (OptionNumbers))
    {
      Choice[LowCaseLetSt]=rand() %2;
      Choice[UpCaseLetSt]=rand() %2;
      Choice[NumberSt]=rand() %2;
      if (Choice[LowCaseLetSt])
      {
        Password[i]=(char)Generator[LowCaseLetSt];
      }
      else if (Choice[UpCaseLetSt])
      {
        Password[i]=(char)Generator[UpCaseLetSt];
      }
      else if (Choice[NumberSt])
      {
        Password[i]=(char)Generator[NumberSt];
      }
    }
    if ((OptionLowerCaseLetters) && (OptionUpperCaseLetters) 
		&& (OptionSymbols))
    {
      Choice[LowCaseLetSt]=rand() %2;
      Choice[UpCaseLetSt]=rand() %2;
      Choice[SymbolSt]=rand() %2;
      if (Choice[LowCaseLetSt])
      {
        Password[i]=(char)Generator[LowCaseLetSt];
      }
      else if (Choice[UpCaseLetSt])
      {
        Password[i]=(char)Generator[UpCaseLetSt];
      }
      else if (Choice[SymbolSt])
      {
        Password[i]=(char)Generator[SymbolSt];
      }
    }
    if ((OptionLowerCaseLetters) && (OptionNumbers) 
		&& (OptionSymbols))
    {
      Choice[LowCaseLetSt]=rand() %2;
      Choice[NumberSt]=rand() %2;
      Choice[SymbolSt]=rand() %2;
      if (Choice[LowCaseLetSt])
      {
        Password[i]=(char)Generator[LowCaseLetSt];
      }
      else if (Choice[NumberSt])
      {
        Password[i]=(char)Generator[NumberSt];
      }
      else if (Choice[SymbolSt])
      {
        Password[i]=(char)Generator[SymbolSt];
      }
    }
    if ((OptionUpperCaseLetters) && (OptionNumbers) 
		&& (OptionSymbols))
    {
      Choice[UpCaseLetSt]=rand() %2;
      Choice[NumberSt]=rand() %2;
      Choice[SymbolSt]=rand() %2;
      if (Choice[UpCaseLetSt])
      {
        Password[i]=(char)Generator[UpCaseLetSt];
      }
      else if (Choice[NumberSt])
      {
        Password[i]=(char)Generator[NumberSt];
      }
      else if (Choice[SymbolSt])
      {
        Password[i]=(char)Generator[SymbolSt];
      }
    }
    if ((OptionLowerCaseLetters) && (OptionUpperCaseLetters) 
		&& (OptionNumbers) && (OptionSymbols))
    {
      Choice[LowCaseLetSt]=rand() %2;
      Choice[UpCaseLetSt]=rand() %2;
      Choice[NumberSt]=rand() %2;
      Choice[SymbolSt]=rand() %2;
      if (Choice[LowCaseLetSt])
      {
        Password[i]=(char)Generator[LowCaseLetSt];
      }
      else if (Choice[UpCaseLetSt])
      {
        Password[i]=(char)Generator[UpCaseLetSt];
      }
      else if (Choice[NumberSt])
      {
        Password[i]=(char)Generator[NumberSt];
      }
      else if (Choice[SymbolSt])
      {
        Password[i]=(char)Generator[SymbolSt];
      }
    }
   }
   else 
		Password[i]= ' ';				 
   }               
    Password[i]= '\0';
    cout << Password << endl;
    return 1;
}
Ксения
Сообщений: n/a
27.11.2007, 13:40     Генерация паролей #4
спасибо большое!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Power!
2 / 2 / 0
Регистрация: 25.09.2012
Сообщений: 147
16.07.2013, 21:04     Генерация паролей #5
А как задать длину пароля?ну скажем ввели в поле edit цифру 5,и пароль сгенерировался из 5-ти символов?
Yandex
Объявления
16.07.2013, 21:04     Генерация паролей
Ответ Создать тему
Опции темы

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