Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.08.2011, 22:33   #1
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию Генератор пасс

Искал в инете генератор паролей, но так и не нашел подходящего. Все что были не подошли. вся проблема что они
-при каждом запуске выдают пароли постоянно одни и те же
-почему то прибавляет в конце пробел (хотя удалял, все равно писался)
-не проходит пароль так как нет например больших букв или маленьких или цифр, или меньше 6 знаков
Помог, нажми весы слева
grafgrial вне форума Ответить с цитированием
Старый 15.08.2011, 22:37   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Ну не нашел. Ну не повезло)
И чего ? Хочешь заказ разместить ?
Размещай, работа-то не пыльная да не шибко дорогая)
mss вне форума Ответить с цитированием
Старый 15.08.2011, 23:20   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1)
Цитата:
Искал в инете генератор паролей
я не знаю, как Вы искали и что,
взял первые два попавшихся (искал только бесплатные)

http://sonikelf.ru/xoroshij-generator-parolej/

http://freesoft.ru/get.html?ident=15...le=PassGen.rar

оба проверил - работают. никаких проблем.

2) ну и написать такое легко можно! примерно за полчаса.
Уж проще уже алгоритма не придумаешь - знай себе случайные символы из строки бери и в выходную строку кидай..
Неужели трудно на Delphi такое самому написать?!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.08.2011, 00:49   #4
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
Подмигивание

Самописный на C# во вложении.
Вложения
Тип файла: rar PasswordGenerator.rar (26.9 Кб, 23 просмотров)
Lime вне форума Ответить с цитированием
Старый 16.08.2011, 07:25   #5
grafgrial
Просто хороший
Форумчанин
 
Аватар для grafgrial
 
Регистрация: 26.03.2010
Сообщений: 562
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Ну не нашел. Ну не повезло)
И чего ? Хочешь заказ разместить ?
Размещай, работа-то не пыльная да не шибко дорогая)
Не для этого я здесь разместил

Serge_Bliznykov
не программы, а функцию, да и у них идет такое что в генерируемом не хватает цифры или заглавной буквы,маленькой буквы. написать не трудно, но не получилось..

Lime
можно исходник генерации посмотреть

Пытался разные писать, это только 2 из них, но через каждые 5 наверное идет совпадание или при новом запуске программы такие же пароли генерирует, почему то пробелы добавляет
Код:
function getpas(i:integer;BB,MB,CH:boolean):pchar;
const
con1='QWERTYUIOPASDFGHJKLZXCVBNM';
con2='qwertyuiopasdfghjklzxcvbnm';
var s:string; r: integer;
begin
repeat
r:=random(80)+random(50);
if i>0 then
begin
case r of
1:if (BB=true) then
s:=s+con1[random(25)+1];
2:if (MB=true) then
s:=s+con2[random(25)+1];
3:if (MB=true) then
s:=s+inttostr(random(10));
end;
end;
until
length(s)>=i;
while length(s)>i do delete(s,random(length(s)),1);
Result:=pchar(s+inttostr(random(999)));
end;

function getpas2(iff:integer):pchar;
var
S,gh:String;
i,iloop:integer;
begin
S:='QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm';
For i:=0 To 8 do
begin
Randomize;
iloop:=Random(length(s));
gh:=gh+S[ILOOP];
end;
gh:=gh+inttostr(random(999));
while length(gh)>iff do delete(gh,1,1);
Result:=pchar(gh);
end;
Помог, нажми весы слева

Последний раз редактировалось grafgrial; 16.08.2011 в 07:31.
grafgrial вне форума Ответить с цитированием
Старый 16.08.2011, 09:01   #6
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Код:
  const
 simvol:array[0..160] of string =
 (' ','!','"','#','$','%','&',#39,'(',')',
  '*','+',',','-','.','/','0','1','2','3',
  '4','5','6','7','8','9',':',';','<','=',
  '>','?','@','A','B','C','D','E','F','G',
  'H','I','J','K','L','M','N','O','P','Q',
  'R','S','T','U','V','W','X','Y','Z','a',
  'b','c','d','e','f','g','h','i','j','k',
  'l','m','n','o','p','q','r','s','t','u',
  'v','w','x','y','z','À','Á','Â','Ã','Ä',
  'Å','¨','Æ','Ç','È','É','Ê','Ë','Ì','Í',
  'Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×',
  'Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á',
  'â','ã','ä','å','¸','æ','ç','è','é','ê',
  'ë','ì','í','î','ï','ð','ñ','ò','ó','ô',
  'õ','ö','÷','ø','ù','ú','û','ü','ý','þ',
  'ÿ','[','\',']','^','_','`','{','|','}','~');
var
  Form1: TForm1;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
n:integer;
begin
randomize; //Для того что бы не было при старте одних и тех же паролей 
edit1.Text:='';
for n:=1 to 20 do begin
edit1.Text:=edit1.text+simvol[random(160)];
end;
end;
вот рабочий код приводит пароль с бухты барахты ))
Воображение важнее, чем знания. (Albert Einstein)

Последний раз редактировалось dmitriegorovih; 16.08.2011 в 09:19.
dmitriegorovih вне форума Ответить с цитированием
Старый 16.08.2011, 09:49   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Вам абы какой/побаловаться или нормальный/криптостойкий?

Цитата:
почему то пробелы добавляет
Конкретно приведённый код - бажный (да и выглядит он, честно говоря, как полный бред - имхо, конечно).

Цитата:
Не для этого я здесь разместил
Вот чудак человек. Тебе намекнули, что у тебя вопроса нет. В чём вопрос-то?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 16.08.2011, 09:56   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

grafgrial

1) Randomize нужно вызывать ОДИН раз при запуске программы.
в Delphi для этого идеально подходит событие создания формы OnCreate
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Randomize;
end;
2) в функции getpas2 видно, что Вы не знаете (или забыли!), что строка в Delphi индексируется ОТ ЕДИНИЦЫ (а не от нуля, как у Вас...)
поэтому:
Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

function getpas2(iff: integer): string;
const S: AnsiString =
  'QWERTYUIOPASDFGHJKLZXCVBNM1234567890qwertyuiopasdfghjklzxcvbnm';
var
  gh: string;
  i : integer;
begin
  gh := '';
  for i := 1 to iff do
    gh := gh + S[Random(length(s))+1];
  Result := gh;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
   Memo1.Lines.Append(getpas2(8));
end;
3) вариант функции с опциями - какие символы допустимы в генерируемом пароле
(эта ваша функция getpas), имхо, наиболее предпочтителен.
Но у Вас он тоже не очень прямо реализован.
Хотите, набросаю свой пример?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.08.2011, 11:57   #9
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Код:
function GetPassword(Count: Integer): AnsiString;
var
  ChrTable: AnsiString;
  I: Integer;
  R: Byte;
begin
  { Получение необходимых символов для создания пароля }
  ChrTable := '';
  for I := 65 to 122 do
    if (I < 91) or (I > 96) then
      ChrTable := ChrTable + Chr(I);

//  for I := 192 to 255 do
//    ChrTable := ChrTable + Chr (I);

  // Подключение генератора случайных чисел
  Randomize;

  SetLength(Result, Count);
  for I := 1 to Count do
  begin
    R := Random(Length(ChrTable)) + 1;
    Result[I] := ChrTable[R];
  end;
end;
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 17.08.2011, 14:26   #10
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Во вложении класс,
Код:
private void generate_button_Click (object sender, EventArgs e)
        {
            string pwd = ""; 
            for (int i = 0; i < (int)this.passcount.Value; i++)
            {
                
                while (pwd == oldpwd || pwd == "")
                {
                    pwd = pwg1.Genereate((int)this.pass_length.Value);
                
                }
                oldpwd = pwd;
                pass_g++;
                ShowCount();
                rich_result.AppendText(pwd + "\n");
                rich_result.ScrollToCaret();
            }
        }
Не забываем что экземпляр pwg1 нужно создать и "включить" нужные галочки (для набора символов) или-же добавить свой набор в поле "other" (String).


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
Вложения
Тип файла: rar PWGEN.rar (1.9 Кб, 15 просмотров)

Последний раз редактировалось Serge_Bliznykov; 17.08.2011 в 15:54.
Lime вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор Kashim Паскаль, Turbo Pascal, PascalABC.NET 12 10.01.2011 21:42
генератор sasha_prof Microsoft Office Excel 5 16.12.2010 11:42
Генератор Treshmazai Помощь студентам 0 08.05.2010 13:26
Генератор?? Нестер Софт 5 10.07.2008 13:32
Генератор warlok Общие вопросы Delphi 3 30.05.2008 00:53