Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 04.02.2019
Сообщений: 5
1

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

04.02.2019, 16:21. Показов 3431. Ответов 8

Прошу помочь создать генератор паролей, который создаёт пароли из выбранный нами знаков (символов), например, 12345"№;%sdfsfsd и т.д. Создавать должна примерно такие пароли: GBM@0X3J#.

Вот основа кода:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses crt;
const len=6; {длина пароля}
        x=1000000; {кол-во создаваемых}
var
  Dict, Pass : string;
  i,j: integer;
  f1 : text;
begin
  assign(f1,'d:\passes.txt');
  rewrite(f1); {создаем файл passes.txt}
 
  Dict := '0123456789'; {это наш словарик}
 
  Randomize; {включаем ГСЧ}
 
  for i:=0 to x-1 do
  begin
  Pass:='';
    for j:=0 to len-1 do Pass:=Pass+Dict[Random(10)+1]; {генерируем}
    writeln(f1, Pass); {пишим в файл готовые пароли}
  end;
 
  close(f1); {закрываем файл}
end.
Но есть проблема в том, что в файл так же сохраняются и одинаковые пароли, например, 90123 и 90123. Дополните, пожалуйста, код так, чтобы похожие пароли не сохранялись в файл, а стирались и пароли генерировались до того момента пока не будут сохранены все возможные варианты паролей, которые можно составить из символов.

Описала, надеюсь, понятно. Буду благодарна за помощь)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2019, 16:21
Ответы с готовыми решениями:

Нужно реализовать Генератор паролей
условие: сколько введешь символов , столько программа зашифрует и выведет

Перебор паролей
Вот, допустим, имеем программу uses crt; var parol,a:integer; begin parol:=456332; repeat...

Обеспечить безопасное хранение паролей
Вчера я хотел создать простую программу для себя (я заинтеровался программированием) В этой...

Генератор паролей
Создайте генератор паролей, который выдает текстовый файл со 100 шестисимвольными паролями.В...

8
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,126
04.02.2019, 17:38 2
А Вам обязательно 100000 штук нужно? Просто проверка на повторы у меня не умещается в память.
0
0 / 0 / 0
Регистрация: 04.02.2019
Сообщений: 5
04.02.2019, 18:11  [ТС] 3
Puporev, Да это важно, так как рассчитывается, что можно будет генерировать и более 1000000 паролей.

Добавлено через 2 минуты
Цитата Сообщение от Puporev Посмотреть сообщение
А Вам обязательно 100000 штук нужно? Просто проверка на повторы у меня не умещается в память.
Да это важно, так как рассчитывается, что можно будет генерировать и более 1000000 паролей.

Добавлено через 11 минут
Цитата Сообщение от Puporev Посмотреть сообщение
А Вам обязательно 100000 штук нужно? Просто проверка на повторы у меня не умещается в память.
В каком смысле "проверка на повторы не умещается в память"?
0
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,126
04.02.2019, 18:14 4
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Ну я пробовал сделать так.

Pascal
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
const len=6; {длина пароля}
        x=1000; {кол-во создаваемых}
var
  Dict : string[10];
  i,j,k: integer;
  f1 : text;
  a:array[1..x] of string[10];
begin
  assign(f1,'passes.txt');
  rewrite(f1); {создаем файл passes.txt}
  Dict := '0123456789'; {это наш словарик}
  Randomize; {включаем ГСЧ}
  a[1]:='';
  for j:=1 to len do a[1]:=a[1]+Dict[Random(10)+1]; {генерируем }
  for i:=2 to x do
   begin
    a[i]:='';
    repeat
    for j:=1 to len do a[i]:=a[i]+Dict[Random(10)+1]; {генерируем}
    k:=1;
    while(k<i)and(a[k]<>a[i]) do inc(k);
    until k=i;
   writeln(f1, a[i]); {пишем в файл готовые пароли}
  end;
 close(f1); {закрываем файл}
end.
Здесь при х=100000 долго идет проверка на повторы.
0
0 / 0 / 0
Регистрация: 04.02.2019
Сообщений: 5
04.02.2019, 18:26  [ТС] 5
А вы не знаете, если подобный код (генератор паролей) сделать на другом языку, может будет проверка идти быстрее? А то я новичок, не знаю как лучше)
0
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,126
04.02.2019, 18:57 6
Попробовал в Делфи, то же самое.
0
0 / 0 / 0
Регистрация: 04.02.2019
Сообщений: 5
04.02.2019, 19:10  [ТС] 7
Цитата Сообщение от Puporev Посмотреть сообщение
Попробовал в Делфи, то же самое.
Хмм... А возможно ли сделать код, который будет составлять комбинации символов из представленных знаков, например, есть числа 1,2,3 и мы составляем из них все возможные комбинации (состоящие из двух знаков) и получаем в итоге комбинации: 111,112,113...211,212,213...311...333

Возвожно ли сделать такой код? Тут как раз будет, то что я хотела, то есть все возможные варианты комбинаций)
0
Модератор
63400 / 47085 / 32454
Регистрация: 18.05.2008
Сообщений: 114,126
04.02.2019, 19:20 8
Вам в принципе можно найти и применить алгоритм генерации перестановок, правда их из 10 цифр будет 10!=3628800, но можно прекратить и раньше.

Добавлено через 3 минуты
Зайдите в Поиск, наберите Генерация перестановок, раздел Паскаль.
0
0 / 0 / 0
Регистрация: 04.02.2019
Сообщений: 5
04.02.2019, 19:34  [ТС] 9
Цитата Сообщение от Puporev Посмотреть сообщение
Вам в принципе можно найти и применить алгоритм генерации перестановок, правда их из 10 цифр будет 10!=3628800, но можно прекратить и раньше.

Добавлено через 3 минуты
Зайдите в Поиск, наберите Генерация перестановок, раздел Паскаль.
Хорошо поищу, спасибо за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2019, 19:34

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Генератор паролей
Program passwords_Generator; uses crt; var a,b:array of integer; n,i:integer; s:string; begin...

Программа - генератор паролей
нужна программа. условия: a. Ввод идентификатора пользователя с клавиатуры. Данный идентификатор...

Генератор паролей
Нужно написать генератор паролей на 10 символов (англиских букв и цифр).

Генератор паролей, найти ошибку в коде
Всем привет, нужна ваша помощь, есть код генератора паролей на паскале procedure...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.