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

Приветствую вас, дорогие читатели! Давненько ничего не публиковал на этом блоге, времени маловато в последнее время. На днях решил что-нибудь сделать и получилась программа для генерации паролей, о которой и будет этот пост.
QIP Shot - Screen 086Конечно программа не самая полезная, но все же мне кажется, что иногда удобно иметь её под рукой. В последнее время я частенько открывал блокнот набирал какие-нибудь символы и использовал их в качестве паролей или же пользовался онлайн-сервисами, если нужен был надежный пароль, например платежный пароль от Яндекс Денег. Поэтому и решил написать свою софтинку, стараясь сделать её такой, какой я хотел бы её видеть, заодно и поделиться ей на своем блоге.

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

генератор паролейгенератор паролей 2генератор паролей 3

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

Скачать генератор паролей>>


UPDATE (06.09.2014)

  • Реализована многопоточность для генерации большого количества данных.

UPDATE (31.08.2014)

  • Добавлена кнопка “Cтоп” и “Приостановить/Продолжить” на вкладке “Несколько”;
  • Оптимизирована работа;
  • Добавлен прогресс бар.

UPDATE (24.08.2014)

  • Исправлены баги, оптимизирована работа;
  • Добавлены новые настройки.
Категория: Delphi, Программы
Понравилась статья? Поделись в социальных сетях:

  • наталья

    а сам пароль потом как сохранять? как им потом воспользоваться?

  • Mike Novikov

    Автор молодец) сайт хорош) вдохновил меня тоже сколотить ресурс) http://tbsb.ru/ вот что получилось

    • http://programmict.ru/ Дмитрий

      Спасибо, буду заглядывать на ваш сайт, есть интересные для
      меня темы )

  • Сергей

    А исходный код можно одним глазом взглянуть?

    • http://programmict.ru/ Дмитрий

      Ну тут же все элементарно :)

  • Алексей

    Есть предложение по развитию программы.
    1-Увеличить количество генерируемых паролей до максимума, который только возможен при указанных настройках в программе.
    2-В настройках программы сделать, чтобы можно было генерировать пароли включая все буквы, символы и знаки. Ввести отдельную строчку для обязательного добавления символов при генерации паролей, если требуется.
    3-В настройках ввести возможность генерировать пароли от 1 и до …(на своё усмотрение).
    4-Чтобы можно было сохранить сгенерированные пароли в txt-файл, например.
    Это ещё не всё, думаю хватит пока что, итак запросил много.)

    • http://programmict.ru/ Дмитрий

      Спасибо за предложения, прокомментирую каждое:
      1. По сути можно генерировать бесконечное множество паролей, все зависит от вашего компьютера. Но после определенного большого числа компьютер будет виснуть и на каждом компьютере это число будет отличаться, так как разные вычислительные мощности. Можно сделать бесконечную генерацию, пока не будет кнопка стоп нажата, устроит так?
      2. Хорошо, сделаю, нет вопросов.
      3. Пароли состоящие из цифр от 1 до или что-то другое имели ввиду?
      4. Сохраненные пароли можно сохранять уже сейчас, кнопка Сохранить на вкладе “Несколько”.
      Что еще пишите, сразу реализую все что требуется.

      • Алексей

        По пунктам:
        1) Согласен, все зависит от мощности. Просто имелось ввиду, что, например, 4-ёх значный пароль, при всём своём многообразии вариантов( учитывая символы, знаки, заглавные, прописные и т.д.), всё равно в итоге станет при генерации повторятся. В связи с этим, можно, при вашем желании и возможности, исключая повторяющиеся пароли при генерации, вывести до генерации информацию о точном количестве паролей, которые только возможны в данном конкретном случае и примерный объём сгенерированного документа, который можно будет потом сохранить, например в .txt. Или сразу, в процессе генерации, сохранять всю генерацию в .txt файл. А так же ввести информацию(до генерации) о примерном времени, которое будет затрачено(Например от 10 мин до 60 мин). Так же, в этом случае, можно было бы ввести шкалу для выделения “загрузки” компьютерных ресурсов, для осуществления генерации паролей. Т.е. человек хочет, чтобы пароли сгенерировались в один .txt документ, но ничего за ним делать не собирается. Тогда ставит шкалу на 100% задействования необходимых ресурсов компьютера и время генерации, указываемое в отдельной информационной строчке, меняется.
        3)Вы правы, не правильно выражена мысль. Сейчас уточню. Имелось ввиду количество. Т.е. пароль от 4 символов(знаков, букв) до 40, например. Сам прекрасно понимаю, что пароль из 1 символа никто не делает.)))
        Спасибо за внимание.

        • http://programmict.ru/ Дмитрий

          Отлично, большое спасибо за пояснение, постараюсь реализовать как можно больше из всего предложенного, но все зависит от свободного времени.

          • http://programmict.ru/ Дмитрий

            Обновил программку, ссылку на скачивание заменил. Первый пункт правда пока стал не реализовывать.

          • Алексей

            Спасибо.) Понимаю, всё требует времени и желания.

  • Сергей

    1. Добавить индикатор выполнения генерации в % либо в количестве уже с генерированных вариантов.
    2. Добавить кнопку остановки генерации, на текущий момент. Что бы можно было сохранить то что уже сделано.
    3. При генерации пароля из 8 знаков, включающих только цифры количество вариантов 100000000 = 10^8 степени. программа просто зависает после 15-20 сек работы. Железо i3 (3.4Ghz) 4Гб оперативной памяти подозрительно быстро происходит зависание.

    • http://programmict.ru/ Дмитрий

      Хорошо, первые два пункта реализую как можно скорее, как только время свободное будет. С 3 пунктом буду разбираться.

      • Сергей

        По 3 пункту был не совсем прав, в шапке окна программы пишет что приложение “Не отвечает” но при этом процессор продолжает грузиться в районе 23-25%, оставил его в таком состоянии до утра. В итоге процесс генерации завершился не весь, в моём случае число с генерированных вариантов пароля было 28192765 из 100000000, от общего числа 28% вес файла 268мб, При попытке сохранить по нажатию кнопки данный список получил ошибку “Нехватка памяти”, хорошо что программа не схлопнулась как её аналог “PInventor” и позволила в ручную частями скопировать сформированный отчёт. Возможно стоит сделать сохранение сразу в файл на лету, а не в память. Хотя не знаю насколько это технически возможно. В понедельник наверное смогу попробовать на более мощном серверном желе 2проц по 8ядер и 16Гб. Посмотрим что будет происходить там. Если исходить из размера памяти то тут её будет в 4 раза больше, есть шанс что генерация дойдёт до конца.

        • http://programmict.ru/ Дмитрий

          Отлично, спасибо за такой тест, уже есть подозрения, почему так программа ведет себя. Я изначально не рассчитывал, что такие объемы будут генерироваться и использовал стандартные типы данных, которые не могут содержать большое количество данных.
          Постараюсь исправить в ближайшее время.

          • http://programmict.ru/ Дмитрий

            Обновил.

          • Сергей

            Пробую обновлённую версию на том же железе как и в первый раз, программа явно стала лучше себя вести. Зависание ушло, процесс генерации стал нагляднее, Хотел спросить вычисления распараллелины на 3 потока? Если да то можно увеличить их количество в качестве теста до 10 иначе тестить на 16 ядерном сервере не совсем корректно. Задействуем менее четверти ресурсов.

          • http://programmict.ru/ Дмитрий

            Возможно вы удивитесь но поток вообще один. Можно реализовать многопоточность, но честно говоря я не вижу смысла, куда такие объемы :)

          • Сергей

            Объёмы нужны при генерации словарей с учётом всех возможных вариантов. Кстатий хотел узнать какой алгоритм генерации комбинаций. Если брать случай пароля с 8 знаками состоящий из 10 цифр включая 0, то формула для расчёта количества комбинаций на мой взгляд будет возведение количества знаков в пароле в степень равную количеству цифр 8^10 = 1073741824 в некоторых программах например Dictionary Generator столкнулся с тем что количество комбинаций считается на оборот 10^8 = 100000000 что значительно меньше. Какой из вариантов используете вы? Даже не так, какой из них верный, я пока не определился.

          • http://programmict.ru/ Дмитрий

            Все намного проще, на самом деле в языке программирования delphi есть функция RandomRange, которая генерирует произвольное число в пределах введённого диапазона, т.е. например, генерируем слово состоящее из английских букв (всего их 26). С помощью функции RandomRange выбираем случайно число из диапазона от 1 до 26, а затем уже берем букву из английского алфавита под этим номером, например,
            если число 1, то буква ‘a’. Далее генерируем остальные буквы по такому же принципу, пока не будет достигнута необходимая длина слова.
            Вот по такому принципу работает программа. Есть еще нюанс, который надо бы подправить – при генерации, по сути, последовательности могут совпасть. И чем больше комбинаций из всех возможных генерировать, тем больше вероятность выпадения одинаковых последовательностей. Надо бы это подправить раз программа используется для генерации словарей :)

          • Сергей

            Да дубли это не есть хорошо, много поточность помогла бы тоже в случае со словарями, Такое же количество паролей 100000000 на том же железе Dictionary Generator делает за 3 минуты примерно. Что по сравнению с 20 часами явное преимущество.

          • http://programmict.ru/ Дмитрий

            Ну да, конечно :) Просто изначально не для этого создавалась, но думаю в ближайшее время постараюсь реализовать.

          • Сергей

            Я понимаю что не для этих целей создавалось, но если будет интересно и будет время попробуй сделать. Спасибо за уже проделанную работу.

          • http://programmict.ru/ Дмитрий

            Хорошо, спасибо вам!

          • Сергей

            Ещё заметил такой момент в новой версии, если нажать паузу и продолжить потом генерацию через какое то время индикация прогресс бара становиться пустой, т.е пропадает зелёная шкала. Хотя может и не из за паузы а просто сама по себе при больших объёмах.

          • http://programmict.ru/ Дмитрий

            Хорошо посмотрю в чем дело.

          • Сергей

            Провёл тест на сервере изменений в производительности 0. На обычной станции генерация завершилась на 24382871 комбинациях. Почти так же как в первый раз. (

          • http://programmict.ru/ Дмитрий

            Понятно, значит надо многопоточность делать и тестировать большие объемы. Постараюсь сделать в ближайшее время.

          • http://programmict.ru/ Дмитрий

            Реализовал многопоточность, но честно говоря, для генерации словарей нужно отдельно делать программу, чтобы была хорошая производительность. Ссылку на скачивание обновил, тестировал на небольших объемах 10 тыс., работает быстрее.
            При генерации небольшого количества паролей (до 1000), будет работать в 1 поток, так как объемы не большие.

          • Сергей

            При скачке хром блокирует генератор как вредоносное ПО?

          • http://programmict.ru/ Дмитрий

            Хм, странно у меня хром не ругается. Вообще к exe файлам Chrom как и другие браузеры очень подозрительно относятся.
            Вирусов нет уверяю, мне это не к чему :)

          • Сергей

            Запускал на разных машинах загрузка процессора выросла до 50% но прирост в производительности я лично не сильно заметил. Ну да ладно, в качестве программы генерации паролей работает как надо, собственно для этого и была написана. Для создания словарей конечно не то.

          • http://programmict.ru/ Дмитрий

            Для генератора словарей нужно отдельно писать программу, попробовал совместить, но хорошо результата трудно добиться, нужно менять структуру программы.

  • Alexandr Dakukin

    Кнопка Стоп точно необходима(прерывание цикла), SpinEdit-ы лучше
    заменить на Edit-ы+UpDown (ассоциировать)…имхо так красивее) или вообще popup меню прикрутить к этим Edit-ам с возможностью выбора из списка…
    Спасибо!

    • http://programmict.ru/ Дмитрий

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

      • Alexandr Dakukin

        как говорится, Хозяин-Барин)))
        Спасибо за утилиту)

        • http://programmict.ru/ Дмитрий

          Пока из вашего предложения добавил только кнопку стоп, но в ближайшее время возможно сделаю исключение похожих символов. Спасибо вам за предложения.

  • Роман Пешиков

    А можно сгенерировать базу по обрывку пароля?

    • http://programmict.ru/ Дмитрий

      Не совсем вас понял, но думаю что в программу не стоит ничего добавлять, ибо это простой генератор паролей.

      • Роман Пешиков

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

        • Егор

          Вот отличный генератор паролей, работает шустро, куча настроек, все
          красиво и четко, ребята работают, хоть с телефона хоть с планшета, все
          гудно http://web-boss.info/service/password-online-generator

  • Andre

    Мне кажется народ будет лениться скачивать программы, при наличии онлайн сервисов. Я пользуюсь вот этим http://castlots.ru/generator-sluchajnyh-chisel/ , хотя может я и ошибаюсь, может кому то ближе софт

    • http://programmict.ru/ Дмитрий

      Да если нужен одни или парочка паролей то думаю софт нет смысла скачивать, а проще онлайн-сервисом воспользоваться. Но иногда все-таки программная версия удобнее в использовании. Здесь все индивидуально и зависит от цели применения.

      • Andre

        Может и так

  • Клаус (Не Санта)

    Если умеешь прогить на Pascal’e выпускай статьи по ним:)

  • Николай

    При попытке скачать, вылетает ошибка на дропбоксе. Просьба перезалить прогу