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

  1. Главная
  2. Блог
  3. Программирование
  4. Сгенерить пароль онлайн

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

1. Наиболее распространенный – авторизация пользователя на конечном сайте, используя пару «логин – пароль».  В базе данных такая пара хранится обычно в виде логина в открытом доступе и пароля зашифрованного с помощью некого алгоритма хеширования (md5, sha* и т.д.). Пароль практически никогда не хранится в базе данных в открытом виде.

2.  Так же распространенный, как и первый способ авторизации – открытые API сторонних сервисов (facebook, vkontakte, openID и т.д.). В данном случае логин/пароль хранятся на стороннем сервисе, и избавляет пользователя от головной боли в виде регистрации, а разработчика, в свою очередь, от необходимости задумываться о большинстве аспектов безопасности.

3.  Наименее распространенный  способ – кроссдоменная авторизация (в данный момент используется на habrahabr). Логику работы можете посмотреть там же.

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

Рассмотрим ситуацию на примере четырех паролей:

Незашифрованный парольmd5Время разбора хэша
123456e10adc3949ba59abbe56e057f20f883e15 секунд
Test123456126cfbcd4d16ae6d25c9bfcae76d8ee43 минуты (был в базе)
13886642939064935ce1862aa84c2a2513bec14bc7922 часа 10 минут
e*sT8An6q[5ec19b0ea9355a22d50f59019aa3c5670148 часов, приостановлено

В качестве алгоритма хеширования не случайно был выбран именно md5, поскольку есть вариант парных хэшей. Подбор осуществлялся по базам + радужным таблицам + брутом. Вполне наглядно видна разница во времени расшифровки сложных и легких паролей. Все вычисления происходили на рабочем компьютере, в реальной ситуации вы можете смело уменьшить время подбора в 100 раз. Таким образом, для вашей же безопасности идеальный вариант - использовать авторизацию через сторонние сервисы, пароли устанавливать сложные (в обязательном порядке). Советую так же не сохранять пароли в браузере, а использовать связку keepass+dropbox. Для получения надежных паролей обычно используют так называемые модули генераторов  паролей. Специально для целей наших клиентов мы разработали собственный бесплатный генератор паролей. Пользуясь данным инструментом, вы сможете за 1 секунду создать надежный пароль, который обезопасит ваши данные. JS код (используется jQuery):

jQuery().ready(function () {
 function getRandomInt(min, max) { // Функция для получения случайного целого числа в заданном промежутке
 return Math.floor(Math.random() * (max - min + 1)) + min;
 }
 function getpwd(symb, len) { // Функция для генерации пароля. symb - строка символов для генерации, len - длина пароля
 var pwd = '';
 for (var i = 0; i < len; i++) {
 pwd = pwd + symb[getRandomInt(0, (symb.length - 1))];
 }
 return pwd;
 }
 function escapeHtml(text) { //Функция для экранирования спецсимволов
 return text
 .replace(/&/g, "&")
 .replace(//g, ">")
 .replace(/"/g, """)
 .replace(/'/g, "'");
 }
 var chars = ["abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", "0123456789", "!@#$%^&*()_-<>,.[]{};:№?"]; //Коллекция символов
 jQuery("#generate").click(function () { //Генерация паролей ко плику
 if (jQuery("input.innerVars:checked").length > 0 && jQuery("#countpwd").val() > 0 && jQuery("#countsymb").val() > 0) {
 var genspwd = '', symb = '', obj = jQuery("input.innerVars:checked");
 for (var j = 0; j < obj.length; j++) {
 symb = symb + chars[obj[j].value];
 }
 for (var j = 0; j < (jQuery("#countpwd").val()); j++) {
 genspwd = genspwd + '

' + escapeHtml(getpwd(symb, parseFloat(jQuery("#countsymb").val()))) + '

';  }  jQuery("#result").html(genspwd);  } else {  jQuery("#result").html('

Выберите значения для генерации пароля

');  }  })  })

Код html ( без стилей ):

<input type="checkbox" value="0" id="chars" class="innerVars"><span>Строчные латинские буквы</span>

<input type="checkbox" value="1" id="bigChars" class="innerVars"><span>Заглавные латинские буквы</span>

<input type="checkbox" value="2" id="numChars" class="innerVars">Цифры (0-9)

<input type="checkbox" value="3" id="specChars" class="innerVars"><span>Спец символы (!@#$%^&amp;*()_-&lt;&gt;,.[]{};:№?)</span>

<input type="text" id="countsymb"><span>Количество символов</span>

<input type="text" id="countpwd"><span>Количество паролей</span>

<input type="button" id="generate" value="Сгенерировать">
Понравилось? Репост!
Grom
Полезный инструмент. Спасибо! В закладки.
Александр
А генератор случайных чисел у вас есть? ;
Владислав
Извините, но у вас есть ошибки в коде: 1) получаете массив с галочками, но ищите их по всей страничке, галочка в добавлении комментария попадает в массив, программа генерит пароль по набору “undefined”, круто, да? 2) циклы используют переменные i и j , но вы их не определили, их можно определить прям в условиях цикла: for (var i = 0; i < len; i++) 3) почему бы не проверить вначале сколько пользователей указал символов и паролей ему надо, указал ли вообще, поставил ли галочку, а уже потом выполнять генерацию, если удовлетворены все условия?!
Федор Майоров
Вы не могли бы уточнить, какой у вас браузер? Такое поведение скрипта не предусмотрено.
Владимир
Спасибо большое, самый нормальный генератор из всех что находил)
Hatchet
А можете это всё в файл .html или .php залить? А то я себе его поставил, но пароли не генерируются почему-то(