Надежный пароль — надежная защита! Это каждый должен знать и понимать. Но зачастую многим оказывается трудно придумать достаточно сложный и надежный пароль из 12-20 символов (а то и больше), тем более, когда их приходится заводить много. Возможно это из-за нехватки времени или воображения, или попросту из-за лени. Для решения таких проблем и неудобств на помощь могут прийти скриптовые генераторы паролей.
Генераторы паролей бывают программные, скриптовые, аппаратные и т.д. Причем этого добра предостаточно в сети интернет. Но все же иметь всегда под рукой свой собственный генератор лучше, чем онлайн-вариант. Кто знает точно, что сайты онлайн-генераторов паролей не сохраняют сгенерированные пароли в своих базах данных для последующего их мошеннического использования? Так что все свое, что «ближе к телу», все-таки надежнее. Вот поэтому предлагаю вашему вниманию несложные скрипты генераторов паролей на языках PHP и Perl. Также познакомимся и с одной из встроенных функцией WordPress, которая служит для тех же целей.
Генератор паролей на PHP
Простой, но вполне пригодный для использования PHP-скрипт, генерирующий как простые, так и довольно сложные пароли различной доины. Его можно сохранить в файл на сервере, например в passwgen.php, и вызывать из браузера. Страница генератора паролей будет выглядеть примерно так:
Одно лишь замечание по поводу использования этого PHP-скрипта — в скрипте нет проверок входных данных (запроса post) на предмет их корректности и допустимых значений. Поэтому, если Вы захотите использовать этот скрипт как шаблон для своего генератора паролей, то рекомендую доработать его, добавив обработку и проверку входных данных функции generate_password
.
~`+=,.;:/?|'; $password = ""; for( $i = 0; $i < $length; $i++ ) { $index = mt_rand( 0, strlen($chars) - 1 ); $password .= substr( $chars, $index, 1 ); } return $password; } if( !$_POST[length] || $_POST[length] === '' ) $length = 16; else $length = $_POST[length]; if( $_POST[special_chars] === 'on' ) $checkbox_special_chars = 'checked'; else $checkbox_special_chars = ''; if( $_POST[extra_special_chars] === 'on' ) $checkbox_extra_special_chars = 'checked'; else $checkbox_extra_special_chars = ''; ?>Генератор паролей Генератор паролей
Генератор паролей WordPress
CMS WordPress начиная с версии 2.5 содержит в своем составе функцию wp_generate_password
для генерации паролей (объявляется в файле \wp-includes\pluggable.php). Поэтому те, у кого есть свой блог или сайт на WordPress могут использовать уже готовое решение.
Генератор паролей на WP можно использовать например в плагинах, темах или создать «личную» страницу со своим шаблоном специально для генерации паролей.
wp_generate_password( $length = 16, $special_chars = true, $extra_special_chars = true );
Входные параметры:
- $length — длина пароля;
(по умолчанию 16 символов) - $special_chars — не алфавитные и не цифровые символы;
(по умолчанию включено) - $extra_special_chars — дополнительные не алфавитные и не цифровые символы;
(по умолчанию включено)
Если какой-то из параметров не будет указан при вызове функции, или вообще она будет вызвана без входных параметров, то функция будет использовать значения параметров по умолчанию.
Примеры вызова функции wp_generate_password
echo wp_generate_password();
- получим пароль длиной в 16 символов (это значение по умолчанию), включающий всевозможные алфавитные, цифровые и другие печатные символы, включая дополнительные;
echo wp_generate_password( 20 );
- получим пароль длиной в 20 символов, включающий всевозможные алфавитные, цифровые и другие дополнительные символы;
echo wp_generate_password( 20, false, false );
- генерируется пароль длиной в 20 символов, в котором будут присутствовать только алфавитные (заглавные и строчные) и цифровые символы от 0 до 9;
Внимание!
Функция wp_generate_password()
возвращает случайный пароль в текстовом виде. Будьте внимательны при выводе сгенерированного пароля на страницу HTML, т.к. при использовании дополнительных символов, пароль может не отобразиться корректно из-за того, что браузер может посчитать некоторые комбинации их них за коды разметки и просто пропустить либо изменить их.
Чтобы избежать такой неприятности лучше выводите сгенерированные пароли в текстовые поля ввода, такие как ,
или в текстовый файл. Пример вывода строки пароля в текстовые поля ввода можно посмотреть выше, в скрипте Генератор паролей на PHP.
Генератор паролей на Perl
В связи с тем, что на большинстве хостингов в настоящее время можно использовать Perl, привожу простой пример генератора паролей на языке Perl. Этот скрипт можно использовать как на сайте, так и на локальном компьютере (при наличии установленного Perl).
#!/usr/bin/perl -w # # Генератор паролей # use strict; sub randomPassword { my $password; my $_rand; my $password_length = $_[0]; if (!$password_length) { $password_length = 16; } my $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; my $special_chars = '!@#$%^&*()'; my $extra_special_chars = '-_ []{}<>~`+=,.;:/?|'; if($_[1] == 2 ){ $chars .= $special_chars; } if($_[1] == 3 ){ $chars .= $special_chars . $extra_special_chars; } my @chars1 = $chars =~ /./g; my $chars1_size = @chars1; srand; for (my $i=0; $i <= $password_length-1; $i++) { $_rand = int(rand $chars1_size); $password .= $chars1[$_rand]; } return $password; } my $res_password = randomPassword(12,2); print "************************\n\n"; print "Password: ", $res_password; print "\n\n"; print "************************\n";
Входные параметры функции randomPassword(12,2)
:
- первый параметр — длина пароля (числовое значение);
- второй параметр — тип набора символов (числовое значение):
1 — алфавитные и цифровые символы;
2 — алфавитные, цифровые, не алфавитные и не цифровые символы;
3 — алфавитные, цифровые, дополнительные не алфавитные и не цифровые символы;
Для использования скрипта на сайте, возможно понадобится сохранение паролей в файле или базе данных. Поэтому вместо
print "Password: ", $res_password;
нужно будет использовать соответствующие функции.
Надежный пароль — спокойствие ваших нервов и головная боль для мошенников!
Метки: Perl, PHP, WordPress, генератор, пароль, скрипт
Ой, Владимир, это выглядит таким сложным…
Мне кажется, придумать подобную абракадабру можно и самому — главное потом вспомнить этот пароль.
После того, как у меня вдруг перестала работать флешка (пропало все, что на ней было) — я записываю пароли карандашом в блокнот. Как-то не очень доверяю сервисам по хранению паролей, и на своем ноутбуке тоже их не храню.
Конечно, придумать подобную абракадабру можно и самому, но если часто нужно придумывать, например при регистрации пользователей где нибудь, то лучше все же использовать скрипты, особенно когда пользователей сотни и больше.
Я извиняюсь конечно за свою некомпетентность в PHP, но вот вопрос — почему в скрипте часто встречаются 3 знака равенства в сравнении? Например тут
Два знака — обычное сравнение значений;
Три знака — производится еще и сравнение типов данных;
Владимир, может вопрос и нелепый, но все же.
А можно ли на своем сайте сделать отдельную страницу — генератор паролей для всех желающих?
Как это делается и будет ли это большой нагрузкой на хостинг?
Конечно же можно. Всего лишь понадобится создать страницу со своим шаблоном — это несложно. Для WordPress: делаете копию файла «Page Template» (page.php), изменяете его, т.е. добавляете код генератора пароля, только не забудьте в самом начале кода вставить метку, что это шаблон страницы, например
Затем создаете стандартным способом страницу в консоли WordPress и назначаете ей персональный «Шаблон», созданный на основе page.php и размещенный в каталоге вашей темы.
Нагрузка на сервер будет большая, если одновременно много посетителей будут генерировать пароли (это могут быть и боты). Для предотвращения этого нужно будет в код что-нибудь добавить, что будет например ограничивать кол-во генераций с одного IP в минуту или что-то типа такого.
1. А что, и боты могут генерить пароли?!? Просто чтобы сервер нагружать, для этого?
2. Спасибо. На своем втором сайте (не основном) в принципе попробую генератор паролей сделать — думаю, посетителям должно понравиться.
1. Да пароли тут не при чем, а вот то, что форма для ввода и отправки данных на сервер будет дополнительная, то и боты ее могут «терзать». Боты все что угодно могут делать, все зависит от того, под что их программисты «заточили».
2. Вот можете посмотреть пример страницы генератора пароля http://4remind.ru/generator-paroley-1
Посмотрела, здорово :) Так терзают эту страницу боты?
Боты в основном «глупые», но если их создатели захотят, то конечно могут и затерзать. Однако на любой яд (ну почти на любой) есть противоядие :)