Простой генератор паролей.

Тема в разделе "WASM.PROJECTS", создана пользователем MHajduk, 18 авг 2008.

  1. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Простой генератор паролей.

    Привет всем!

    Представляю программу SimPaGen, которая является несложным в использовании, небольшим и очень удобным приложением для создания паролей. Написанная на ФАСМе утилита облегчает процесс создания надёжных паролей используемых для доступа к форумам, почтовым ящикам и другим сайтам.

    Вот короткая демонстрация приложения в работе:

    [​IMG]

    Создающиеся пароли состоят из символов любой комбинации четырёх основных категорий:

    * буквы A, ..., Z,
    * буквы a, ..., z,
    * цифры 0, ..., 9,
    * символ подчёркивания '_'

    и других выбранных пользователем символов. Количество всех возможных непустых наборов знаков равно 2^224-1 (количество всех непустых подмножеств набора символов с шестнадцатеричными кодами от 0x20 до 0xFF). Максимальная длина созданного пароля равна 9999 символам. Созданный пароль можно скопировать в буфер обмена пользуясь кнопкой

    [​IMG]

    Кроме того, нажатие сочетания клавиш WIN + F12 даёт возможность создания нового пароля и немедленного помещения его в буфере обмена, даже когда окно приложения неактивно.

    Настройки программы определяющее длину пароля и набор составных символов создающихся паролей хранятся перед концом работы приложения в следующем подразделе системного реестра:

    HKEY_CURRENT_USER\Software\SimPaGen\<версия_программы>

    В приложении использованы функции CryptoAPI библиотеки 'advapi32.dll', благодаря
    чему созданная последовательность символов пароля является "криптографически случайной".

    Исходный файл содержит встроенные непосредственно данные иконки и манифеста.

    Программа является примером использования метода сабклассинга полей редактирования.


    http://mikhajduk.houa.org/SimPaGen/SimPaGenRU.zip - Здесь можно скачать приложение с исходником в кодировке UTF-8.

    Домашняя страница проекта: http://mikhajduk.houa.org/RU/SimPaGen.php

    Программа протестирована под Windows XP SP3.
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    ее еще и обслуживать надо??? О_о хуясе :)
     
  3. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    надо бы такую, чтоб её раз настроить(обслужить), а потом чтоб по хоткею или там при щелчке по иконке в трее сгенеренный пасс добавлялся в клипборд.
     
  4. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Я имел в виду "лёгкая в использовании". :)

    Интересные замечания. Подумаю об этом. :)
     
  5. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Доступна новая версия программы SimPaGen.

    Добавления и изменения:

    [+] добавлена кнопка [​IMG], которая копирует пароль из поля редактирования программы в буфер обмена,

    [+] добавлено сочетание клавиш WIN + F12, которое применяется для создания нового пароля и помещения его в буфере обмена (сочетание работает тоже если окно приложения неактивно),

    [+] добавлена возможность записывания текущих настроек программы (длина пароля и набор составных символов создающихся паролей) в системном реестре,

    [x] упрощены и исправлены операции касающиеся таблицы определяющей характеристическую функцию набора знаков создающихся паролей.

    Ссылки на обновленную версию приложения находятся в первом посте этого топика.
     
  6. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    попробуй еще мой генератор паролей =))) ник фронт ру

    Этот генератор не использует календарное время и Randomize как и датчики псевдослучайных чисел, истинно-случайные байтики сами-собой набегают в буффер... А потом еще с них для верности сымается SHA1.
     
  7. x0man

    x0man New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2008
    Сообщения:
    358
    Кодировка в комментах сурса не вдохновила... каракули блин...
     
  8. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Брат Микола, вот тебе еще одно доказательство, шо 0.9999...=1
    Действительно, 0.9999...=3*0.3333...=3*1/3=1

    Покруче, покруче твоего доказательства будет =)))
     
  9. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    x0man
    Комменты в сорцах в кодировке UTF-8 (я об этом предупреждал). Советую русский редактор UniRed или чешский PSPad (которым я пользуюсь вместо оригинального IDE ФАСМа).

    Браток persicum, ты забыл, что надо тогда доказать "очевидное" равенство 1/3 = 0,33333... = 0,(3). Тогда твоё доказательство длиннее, длиннее будет. ;)
     
  10. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Ну с этим не будет спорить ни одна живая душа =))) Представление в виде десятичной дроби у дроби 1/3 единственное. Возьми калькулятор Виндовз и проверь приближенно... Помню, как только я в третьем классе научился делить в столбик, меня поразило, что деление 10 на 3 превращается в бесконечный процесс...

    Ну лана, вот тебе доказательство что 0.3333...=1/3 без привлечения геометрический прогрессии.
    0.(3)=3/9=1/3

    Кста, таким же макаром
    0.(9)=9/9=1

    Усек наконец? И никаких прогрессий =))) А бесконечная прогрессия - это ведь тоже частный случай предела... Доказывать что 0.9999... в пределе равно 1 через пределы это не наглядно. Кто не верит в это тождество, почему должен верить в существование предела? Про Ахиллеса и Черепаху помнишь?
    Если человек не верит, что девятки в бесконечности достигнут целое, то он может усомниться, почему можно отбросить 1/10 в степени бесконечность, кто дал право, это разве точный ноль? Нужно понимать, что формула для суммы бесконечно убывающей геометрической прогрессии приближенная с точностью до бесконечно малых высоких порядков. Куда дели q^n из точной формулы?

    Мои методы доказательства предельного перехода не требуют, а требуют только несколько первых членов бесконечных дробей и абстракцию бесконечной осуществимости процесса.
     
  11. zet

    zet New Member

    Публикаций:
    0
    Регистрация:
    15 окт 2007
    Сообщения:
    121
    * При установленной галочке наличие символов за которые она отвечает в пароле не гарантируется.
    * В коде слишком много комментариев
    * Использование UTF8 не оправдано
    * Иконки встроенные в программу только замусоривают исходник
    * Зачем для новой версии программы новый набор ключей в реестре?

    PS: Ктонибуть водел пароли в 9999 символов?
     
  12. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Ну это не страшно, ну не гарантируется, но ведь они просто допускаются...
    Хотя это обстоятельство может сузить необходимое пространство поиска перебором. Например, заказывали спецсимвол, а его там и нет. Надо будет подправить свою прогу тоже на это обстоятельство.
    С другой стороны, это актуально только для коротких паролей, а для длинных разнообразные символы сами набегают.


    А че это мой прог никто не обсуждает? Какая-то cryptolib.dll высасывает из себя 2^224 каких то паролей... А откудова Seed берется? вот в моей проге пароли абсолютно случайны и возникают в результате стохастических биений... А Seed вообще никакой не нужен, ни от времени, ни от мышки, ни от картинки на экране, никакой источник внешней энтропии не нужен, нету у меня в проге Seed'a, потому как и псевдослучайных чисел для которых он был бы нужен тоже нету!
     
  13. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    Использование UTF-8 оправдано, потому что я в ежедневной деятельности пишу на трёх языках. Ты видел такую кодировку (не Юникод) в которой одновременно встречается польские и русские буквы и всё есть ОК?

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

    Остальные твои замечания это твоё личное дело. Программа не нравится - просто не пользуйся ей. ;)

    Браток persicum ты вообще знаешь что это такое "доказательство"? Мне кажется, что нет. То, что ты представил это не доказательство - это шутка какая-то. ;)
     
  14. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Слишком много комментариев.
    Не совсем понял, зачем переопределять оконную функцию EDITов.
    Есть же флаги ES_READONLY и ES_NUMBERS.

    Вот мой генератор (masm32). Без изощрений с CryptoAPI пароль генерится с помощью RDTSC. Можно использовать латинские большие и маленькие буквы, цифры и спецсимволы. Длина от 4 до 20 символов. Настройки запоминаются в реестре. Имеется параметр командной строки -gen -- пароль генерится автоматом при запуске, копируется в буфер и программа завершается.

    http://slil.ru/26227957
     
  15. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Подправил свой генератор с учетом этого пожелания. Но тут возможны траблы. Так, если в группе СПЕЦСИМВОЛЫ стоит только лишь один "_", то вероятность его появления среди прочих цифр и букв мала... Пока не нашел достойного решения этой проблемы. Сам генератор требует заметного времени даже на генерацию одного пароля, посколько пароль истинно-случаен.

    http://slil.ru/26228339

    Брателло, тебе хто дал право применять приближенную формулу для геометрической прогрессии?
    Ты "доказал" тавтологию!!!
    0.9999... = 0.9(1-0.1^n)/0.9 = 1 - 0.1^n

    То есть ты доказал, что дробь 0.9999... настолько не достигает единицы насколько она недостает единицу сверху. Почитай историю развития дифференциального исчисления, греки, ньютон-лейбниц и т.д.

    По свойствам периодических дробей имеем,
    0.(xx...x)=xx...x/99...9

    Так шо это не шутка,
    0.(9)=9/9=1 - второе замечательное доказательство
    0.(9)=3*0.(3)=3*1/3=1 - первое замечательное доказательство
     
  16. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Классная вещь! Не то что Шестые Дельфы у меня... =))) Но только не реализовано замечание к обязательному использованию всех возможных символов если стоят галки, что ослабляет пароль.
     
  17. p630o8wq49

    p630o8wq49 New Member

    Публикаций:
    0
    Регистрация:
    12 окт 2008
    Сообщения:
    1
    Скажите честно Вы сами эту буйню придумали? Или это из какого-то журнала говняного или статьи?
     
  18. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    А по вашему случайные байтики можно набрать только из криптопроцессора или звуковой карты? =)))
    По идеологии прога близка к RDTSC, хотя асм и тем более отладочные регистры не используются, а просто RDTSC имитируется на языке высокого уровня.
     
  19. MHajduk

    MHajduk New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2006
    Сообщения:
    123
    persicum

    Твои словно-калькуляторно-интуитивные "доказательства" имеют столько общего с действительными формальными доказательствами, сколько имеет обычная бухгалтерия с высшей математикой.

    Ты смешной, потому что "моё" доказательство (использование бесконечных геометрических прогрессий) хорошо известно уже с XVIII столетия и происходит от самого Леонарда Эйлера (год 1770, «Начала алгебры», англ. "Elements of Algebra") и, в самом деле, ты атакуешь самого Эйлера. Ты мог бы об этом прочитать хотя бы здесь: http://en.wikipedia.org/wiki/0.999... (если б ты знал английский, конечно...).

    Вот помещаю сброс экрана фрагмента выше примененной страницы из Википедии, на котором все могут увидеть, о чём речь идёт:

    [​IMG]

    Так вот тебе persicum надо ещё много учиться математике... Кроме того надо тебе узнать как правильно вести себя, потому что сейчас ты очень уверен в себя ламер.
     
  20. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Эка ты хватил, предел бесконечной прогрессии умели находить еще математики древности =)))

    Задача то была не в том, чтобы применяя аппарат высшей математики найти предел, то есть в сущности показать что числовая последовательность 0.9, 0.99, 0.999 и т.д. не может превысить единицу. Задача была показать этот факт недалеким пацанам на пальцых, наглядно так сказать.