Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Генератор паролей, генератор из массива 
V
    Опции темы
OutlawZ
Дата 12.4.2009, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Код

$line = 5;  #Длина пароля
@passwd = qw( q w e r t y u i o
                           a s d f g h j k l
                           z x c v b n m p
                           Q W E R T Y U
                           I O P A S D F G
                           Z X C V B N M); #Список символов


Можно спросить как можно организовать генератор паролей? у меня просто что то идей в голове нет.  Посмотрел в интернете примеров но все не то. 

Что именно не получается:
С помощью функции rand() хотел вывести случайный выбор индексов массива не больше 5 символов, но получалось только вывод первой ячейки. 

суть посто научиться что то генерировать, будь то число но определенной длины!


Это сообщение отредактировал(а) OutlawZ - 12.4.2009, 17:51


--------------------
user posted image
user posted image
PM MAIL   Вверх
gcc
Дата 12.4.2009, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



Код

    my $salt;

    my @rnd_txt = ( '.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z' );

    srand;

    for ( 0 .. 7 ) {
        my $s = rand(@rnd_txt);
        $salt .= $rnd_txt[$s];
    }

PM WWW ICQ Skype GTalk Jabber   Вверх
shamber
Дата 12.4.2009, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Код

#!/usr/bin/perl -w
use strict;

my $line = 5;  #Длина пароля
my @passwd = qw( q w e r t y u i o
                           a s d f g h j k l
                           z x c v b n m p
                           Q W E R T Y U
                           I O P A S D F G
                           Z X C V B N M);
my $str; #строка с данными
srand;
while($line){   
$str .= $passwd[rand(@passwd)] ;  
$line--;
}
print $str."\n"; 



пойдет?

Это сообщение отредактировал(а) shamber - 12.4.2009, 19:04
PM MAIL Jabber   Вверх
shamber
Дата 12.4.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



опередили smile
PM MAIL Jabber   Вверх
arto
Дата 12.4.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



perl -le '@a = (a..z,A..Z,0..9); print join "",map { $a[int rand $#a] } 1..$ARGV[0]' 5
PM MAIL ICQ   Вверх
ginnie
Дата 12.4.2009, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 6.1.2008
Где: Москва

Репутация: 38
Всего: 49



arto, извините, что я занудничаю  smile, но так как rand возвращает значения меньшие заданного аргумента, то лучше использовать $a[int rand(scalar @a)], тогда будут задействованы все возможные символы.


--------------------
Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг)
PM MAIL Skype Jabber   Вверх
OutlawZ
Дата 14.4.2009, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Всем спасибо smile


--------------------
user posted image
user posted image
PM MAIL   Вверх
OutlawZ
Дата 14.4.2009, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Только можно вопрос? зачем использовать в коде srand? когда rand и так нормально работает.
Код

@mas = qw(1 2 3 4 5 6 7 8 9 w 4 Z c B a);
$line = 3;
while($line)
{
$r.= $mas[rand(@mas)];
$line--;
}
print $r;


Я конечно понимаю что srand иницилизирует генератор чисел rand(), но думаю в этом коде его можно опустить.


--------------------
user posted image
user posted image
PM MAIL   Вверх
KSURi
Дата 14.4.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



rand() в любом случае вызывает srand(), если это не было сделано раньше


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
shamber
Дата 14.4.2009, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



опускайте smile никто не против smile
PM MAIL Jabber   Вверх
infarch
Дата 16.4.2009, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009

Репутация: нет
Всего: 1



А зачем изобретать велосипед? 

Код

    my $min = 10;
    my $max = 10;
    my @chars = ( 'a'..'z', 'A'..'Z', 0..9 );
    print Crypt::GeneratePassword::chars($min, $max, \@chars);

PM MAIL   Вверх
amg
Дата 16.4.2009, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1145
Регистрация: 3.8.2006
Где: Новосибирск

Репутация: 38
Всего: 50



Цитата(infarch @  16.4.2009,  10:31 Найти цитируемый пост)
А зачем изобретать велосипед? 
Это правильный подход! Тем более что хороший генератор паролей должен выдавать не только достаточно секретные, но и сравнительно легко запоминающиеся пароли. А это не так просто сделать.

PM MAIL   Вверх
Secandr
Дата 16.4.2009, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 1
Всего: 39



http://packages.debian.org/stable/admin/pwgen вот этот пакетик генерирует очень красивые пароли. Легко запоминающиеся и к тоьу же периодически матерные smile

Добавлено через 3 минуты и 33 секунды
Вот такие пароли: "seew3Fee Gai7muel zal8Uyul aer7Beph Ohzaera2 yoo4seeS shahth2D Oo4phoow"


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
OutlawZ
Дата 16.4.2009, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Цитата(infarch @ 16.4.2009,  10:31)
А зачем изобретать велосипед? 


Затем потому что мне интересно как это работает!!! Использовать то что я не понимаю и не знаю как это работает не есть истина!


--------------------
user posted image
user posted image
PM MAIL   Вверх
shamber
Дата 21.4.2009, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Цитата(OutlawZ @  16.4.2009,  23:28 Найти цитируемый пост)
Затем потому что мне интересно как это работает!!! 

так можно же ж исходники посмотреть  smile 
PM MAIL Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.