Генерация паролей и логинов.

Тема в разделе "WASM.ZEN", создана пользователем REASY, 25 дек 2007.

  1. REASY

    REASY New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2007
    Сообщения:
    108
    Приветствую всех.
    Допустим я хочу выпускать интернет карты.
    Для карты нужны логин и пасс.
    Скажите пожалуйста, есть ли какие нибудь программы для генерации этих строк?
     
  2. Noble Ghost

    Noble Ghost New Member

    Публикаций:
    0
    Регистрация:
    28 апр 2004
    Сообщения:
    204
    Адрес:
    Russia
    в никсах есть неплохие генерилки пассвордов
     
  3. REASY

    REASY New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2007
    Сообщения:
    108
    А название не помнишь? Или гуглить надо :)
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    keepass (под винду)
     
  5. GMax

    GMax Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    218
    Вот тут посмотри:
    http://www.winasm.net/forum/index.php?showtopic=719
    может подойдет

    Автор бывает на этом форуме.
     
  6. REASY

    REASY New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2007
    Сообщения:
    108
    Ок, посмотрю обязательно.Спасибо большое!!!
     
  7. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    keepassX - кросплатформена - наилучший вариант, по моему мнению!

    можно использовать openssl (*nix/win)
     
  8. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    #include <iostream.h>
    #include <stdlib.h>
    #include <time.h>

    #define NPAS 100
    #define NSYM 12

    char s[]={"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@#$%^&(){}[]"};

    main() {
    int i j; struct time t;
    gettime(&t); srand(t.ti_sec*100+t.ti_hund);
    for (j=0;j<NPAS;j++) {
    for (i=0;i<NSYM;i++) cout << s[rand()|(RAND_MAX|(sizeof(s)-1))];
    cout << endl;
    }
    }

    :)
     
  9. ntldr

    ntldr New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    125
    drmad
    Не смеши людей. Хоть бы криптостойкий ГСЧ юзал.
     
  10. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    ntldr

    Зачем?
     
  11. ntldr

    ntldr New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    125
    Хотя да, лучше везде юзать rand. Круто будет по одной интернет карте восстанавливать все остальные...
     
  12. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    Вот тебе пароль, сгенерированный этой прогой: $xX0~doUGz9O. Начинай, восстанавливай. Какой был следующий в списке? А какой предыдущий? Время пошло. :)
     
  13. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    drmad
    rand()|(RAND_MAX|(sizeof(s)-1)) == RAND_MAX и обращение к s[RAND_MAX] очевидно громко падает :)
     
  14. ntldr

    ntldr New Member

    Публикаций:
    0
    Регистрация:
    20 ноя 2007
    Сообщения:
    125
    drmad
    Я ничего не собираюсь восстанавливать. Я лишь отметил твой дилетантский подход к задаче требующей криптографической стойкости. Вкратце метод восстановления состоит в подборе seed под известный пароль, и последующей генерации паролей с помощью перебора seed в малом диапазоне от первоначального значения. Так как при инициализации значение seed меняться может лишь в течении секунды, то вообще велика вероятность полного совпадения при генерации нескольких паролей за раз. Максимальная стойкость сгенерырованых паролей любой длины будет равна 2^32, что при использовании их к пример для шифрования данных делает вскрытие практически мгновенным. Если ты умный человек, то после этого обьяснения ты должен осознать свою ошибку. Если же не осознал, то удачи в применении таких "криптостойких" паролей.

    Если же мое мнение для тебя ничего не значит, то запости свой генератор на какой-нибудь адекватный криптографический форум, вроде pgpru.com. Посмотрим какие там будут отзывы о его "стойкости".
     
  15. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    В этой теме гораздо более интересен механизм генерации цифровой строки в картах для оплаты мобильных телефонов. Никаких логинов и паролей, просто длинное число ) Единственная секьюрность тут - блокировка телефона посе трех попыток. Думаю с картами можно сделать точно так же. 3 раза абшибся и досвидос )
     
  16. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    можно уменьшить общее число итераций цикла в сорце выше, если поменять местами внутренний и внешний цикл; (не на много, но все же), и в итоге будем иметь 1212 итераций вместо исходных 1300 :)
     
  17. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ты имел ввиду проверок условия?
     
  18. varnie

    varnie New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2005
    Сообщения:
    1.785
    n0name
    можно и так сказать.

    я отталкивался от аналогии с примером из книги "Совершенный Код" Стива Макконнелла:
    Код (Text):
    1. for ( column = 0; column < 100; column++ ) {
    2.     for ( row = 0; row < 5; row++ ) {
    3.         sum = sum + table[ row ][ column ];
    4.     }
    5. }
    ну и здесь та же картина имхо.
     
  19. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    Скажите пожалуйста, есть ли какие нибудь программы

    Код (Text):
    1. cat /dev/random
     
  20. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    А я специально спровоцировал всех желающих. (смайлик в посту заметил? это оно и есть.)

    Только я ждал большего. Я ждал, что кто-нибудь приведет в ответ пару-тройку издохников, кто-то начнет критиковать и т.п. Что-то пока не дождался. :dntknw:

    Ну ладно, что имеем, то имеем.

    И совсем не 2^32.

    В минуте 60 секунд, в секунде 100 сотых (хотя, конечно, это зависит от текущего режима работы таймера и от операционной системы :) ), итого 6000 различных затравок. Если брутфорсить, то имеем примерно 6000х4 млрд=24*10^12 вариантов. А это уже достаточно много.

    Кроме того, (не уверен на 100%, но надо посмотреть в стандарт ANSI) rand() - 32-битовый датчик с 16-битовым выходом. Т.е. цикл зафиксировать, например, методом Флойда, не получится. Да и вообще не получится, т.к. мы имеем сначала mod 2^16, а потом, фактически, еще и mod (длина алфавита). Т.е. один и тот же пароль может генерировать разные цепочки "последышей".

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