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

10 июня 2010
Просмотров: 7434Обсудить
Рубрика: Программирование

Вам никогда не доводилось придумывать пароль для нового сайта, потом записывать его куда-то, потом долго вспоминать\искать куда записали\искать пароль в почте ??

Как по мне - современный человек, который хоть изредка бывает в интернете - сталкивался с этой проблемой. А что если тот файлик, в котором вы хранили все пароли - полетел (винт загнулся), а если мыло увели ??  Капец паролям ?? ;) Думаю вы понимаете, что решение есть, раз я начал писать эту статью ;))) Именно для этого и нужен Online генератор паролей!

На написание статьи меня натолкнули несколько постов на хабре об паролях (http://habrahabr.ru/blogs/infosecurity/92033/, http://habrahabr.ru/blogs/infosecurity/92033/).

Метод заключается в генерации пароля по сайту, для которого этот пароль генерится, и вашей личной секретной фразы (ее нужно просто помнить, она может быть одна для всех паролей, главное - не болтать ;))

Алгоритм достаточно простой:

$password=substr(md5(md5($key.$secret.$site)),$start,$count);

, где $key - ваша фраза, $secret - кои-то секрет, который вы поставите в скрипт генерации пароля, $site - сайт, для которого и генерится пароль. Так же надо выдавать пароль заданной длинны: $start - с какой буквы пароль будет "обрезан", $count - длинна пароля.

Дальше предлагаю посмотреть код, поскольку ничего сложного в нем нету и все будет понятно по комментариям:

$secret = "just4fun"; // секретная фраза для повышения секьюрности ;)
$start=0; //  с какого символа начинать обрезать пароль
$count=8; // желаемая длина пароля
if (!isset($_POST['key']) && empty($_POST['key'])){ //  если ничего не пришло - ставим пустым
	$key="";
} else 
	$key=trim($_POST['key']);
	
	
if (!isset($_POST['site']) && empty($_POST['site'])){//  если ничего не пришло - ставим пустым
	$site="";
} else 
	$site=trim($_POST['site']);
	
if (empty($key) || empty($site)){ // не генерим пароль, если хотя бы одно значение - пустое
	$password="";
}	else {
	$password=substr(md5(md5($key.$secret.$site)),$start,$count); // собственно генерация пароля
}
?>

Просто, не так ли ??

Вся прелесть в том, что вы можете залить скрипт себе на сайт, придумать один раз секретную фразу, задать желаемые параметры пароля и радоваться жизни.

Плюсы:

1) Простота использования

2) Вы всегда можете "вернуть" забытый пароль (просто сгенерить его еще раз)

3) Даже если злоумышленник узнает алгоритм, по которому вы создаете пароли, узнает сайт, для которого вы его генерировали, потребуется немало времени, чтоб подобрать секретную фразу!

Минус я придумал только один: если вы попробуете сгенерировать пароль - вы увидите пароль вида "21b519ef". Для обычного пользователя такого пароля будет вполне достаточно: длина в 8 символов (можно и больше), есть и буквы и цифры, пароль не словарный (исключает атаку по словарю). Но "надежный пароль" обычно предполагает использование верхнего\нижнего регистра и символов пунктуации.

Для регистра можно дополнительно заюзать функцию base64_encode, ну а для пунктуации - сами предложите в коментах ;)

зы: Посмотреть сие чудо в действии: Online Password Generator

зыы: Вот код всей страницы, вместе с html  формой:

<html>
<head><title>PASSword Generator</title></head>
<style>
#canvas {float:left;width:750px;}
.label {float:left;text-align:right;width:200px;margin:15px;color:#444444;font-size:13px;}
.value {float:left;text-align:left;width:500px;}
.value input {width:450px;}
.info {color:#440000;font-size:10px;}
#s_button {float:left;width:100px;}
#s_button input {width:150px;height:75px;}
</style>
<body>
<center><h1>PASSword Generator</h1></center>
<hr />
<?php 
$secret = "just4fun"; // секретная фраза для повышения секьюрности ;)
$start=0; //  с какого символа начинать обрезать пароль
$count=8; // желаемая длина пароля
if (!isset($_POST['key']) && empty($_POST['key'])){
	$key="";
} else 
	$key=trim($_POST['key']);
	
	
if (!isset($_POST['site']) && empty($_POST['site'])){
	$site="";
} else 
	$site=trim($_POST['site']);
	
if (empty($key) || empty($site)){
	$password="";
}	else {
	$password=substr(md5(md5($key.$secret.$site)),$start,$count);
}
?>
<form method="post" action="">
<div id="canvas">
	<div class="label">Секретная фраза: </div>
	<div class="value">
		<input type="text" name="key" value="<?=$key?>" style="" /> 
		<div class="info">Ex: я упала с самосвала</div>
	</div>
	<br style="clear:both;" />
	<div class="label">Сайт: </div>
	<div class="value">
		<input type="text" name="site" value="<?=$site?>" style="width:450px;" /> 
		<div class="info">Ex: yaap.info</div>
	</div>
	<br style="clear:both;" />
</div>
<div id="s_button">
<input type="submit" value="Генерировать" />
</div>
<br style="clear:both;" />
</form>
<br />
<hr />
<br />
<div class="label">Результат: </div>
<div class="value">
	<input type="text" style="border: 1px solid rgb(0, 0, 0); width: 450px;height:30px;" value="<?=$password?>" onclick="if (this.value != '') this.select();">
</div>
</body>
</html>
google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
Метки:


Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email.
(При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д.)



grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)