Для начала неплохо было бы самому привести рабочий исходник, который хотя-бы компилировался. Ты сам посмотри на свою инициализацию srand(t.ti_sec*100+t.ti_hund); Имеем 60 секунд в минуте и 24 часа в сутки = 1440 комбинаций. В одной связке генериться 100 паролей, значит общее число возможных паролей = 144000. Если у нашего провайдера 1000 пользователей, то подходящий пароль подбирается максимум с 144 попыток. Если мы знаем хоть один рабочий проль, то подбираем следующий быстрее.
ntldr Это текст вот прямо из окна редактора, все компилируется и, как ни странно, работает. Компиляторы нормальные иметь надо. Почему это в одной связке генгерится 100 паролей? Потому что в исходнике так? Ну это же для примера. Я подозреваю, что для торговли карточками нужно как минимум несколько тысяч паролей. Т.е. нормальная цифра - не 100, а 10000. А по-хорошему, надо сгенерировать, например, 1000000 паролей и взять из них 10000 каких-нибудь средних. Код (Text): Имеем 60 секунд в минуте и 24 часа в сутки = 1440 комбинаций. Отнюдь! t.ti_sek - секунды. t.ti_hund - сотые доли секунды. Итого: 60*100=6000 исходных затравок, а не 1440. Итак, берем 6000 затравок и начинаем брутфорсить.... стоп! Но ведь в тексте стандарта ANSI числовые константы, использованные для датчика, приведены не обязательные, а _рекомендуемые_. В разных компиляторах они разные. Например, для Виндов: в Вижуал Ц они a = 1103515245, b = 12345, а в Борланде они a = 22695477, b=1. roman_pro Никуда оно не падает. Там живет нолик.
Значит VC2008 не нормальный? Интересно, что за чудо компилирует вот такие перлы: Код (Text): main() { int i j; ? Код (Text): s[rand()|(RAND_MAX|(sizeof(s)-1))] - а вот это вобще ахтунг. Как оно вообще может работать не падая? При этих словах труп анонимного криптоаналитика тихо перевернулся в гробу...
ntldr Блин. Вообще-то, это когда-то компилировалось при помощи TopSpeed C++ и нормально работало... честное пионерское!... потом вошло в ДОС-овский текст, который автоматическим ковертером был переведен в Вин-кодировку и всунут хтмл-страничку, откуда я этот издохник и взял вчера. Понятия не имею, куда девалась зпт, и откуда взялись вертикальные палки, когда там должны быть косые. Ну, ты на мелочи не отвлекайся, ты по концепции давай, по концепции. В частности, что там про труп-то? В разных компиляторах (точнее, в заголовочных файлах) константы датчика действительно разные используются.
Да какие могут быть концепции? Все адекватные люди используют криптографически стойкие ГСЧ, вместо того чтобы пытаться обосновать применение нестойкой схемы в какой-либо конкретной ситуации. Тем более что написание такого ГСЧ займет меньше времени чем флуд в этом топике, и в итоге безопасность генерации паролей ни у кого не вызовет сомнений. В криптографическом сообществе создание небезопасных алгоритмов считается простительной ошибкой (так как демонстрирует незнание), но попытка защищать свое небезопасное творение вызывает крайне негативную реакцию (так как демонстрирует глупость). В конце концов защищающие оказываются послаными очень далеко (что собственно правильно, так как глупость неизлечима). Криптографический алгоритм должен быть стоек в любом применении. В противном случае его лучше вообще не создавать, чтобы не вводить кого-либо в заблуждение. Вдруг кто-нибудь начнет твоим алгоритмом генерировать пароли к криптодискам? Поэтому не вводи людей в заблуждение, а просто переделай код так, чтобы он не вызывал нареканий.
Ага. Вот уже пошла философия. Ну вот и получается, что "криптографическое сообщество" постоянно тратит кучу времени, нервов и денег, решая частные вопросы глобальными методами. Вот буквально сегодня эта же здравая мысль в другом топике у тов. К. Касперски прозвучала. Разве речь шла о создании универсальной программы, предназначенной для продажи? Речь шла о генерации нескольких тысяч паролей. И решаться эта задача должна была за 10-15 минут, что, я собственно, и собирался сказать своим первым топиком. А если искать где-то готовую программу... да требовать от нее теоретически обоснованной криптостойкости... да еще и, возможно, операционку под нее подбирать... да вдруг она еще и платная... так можно до решения своей проблемы и вообще в разумные сроки с разумной затратой усилий не добраться. Имхо.
Клиника, что же еще сказать... Как раз благодаря подходу "тяп-ляп и готово" существуют такие вещи как спам, кардинг и другие угрозы безопасности. Но впринципе я с тобой согласен, ибо благодаря такие кодерам как ты, кто-то может поиметь халяву
А вы думаете он на самом деле будет карты выпускать? А злые харкеры из америки вскроют его ГСЧ? Меня бы вот Линёвые функции генерации устроили. Там в ядре есть специальный пул энтропии. И никакая библиотека-генератор тут не соперник.__))
ntldr Фи. Тут вопрос действительно философский. Вот перегорела лампочка. Есть два подхода. Первый - сбегать на угол, купить новую лампочку, вывернуть старую ввернуть новую. Второй - позвонить и вызвать электрика, потребовав, чтобы у него обязательно были резиновые перчатки и лицензия, разрешающая ему работу по этой профессии. Да, я согласен, что возможна ситуация, когда "первый" покупает бракованную лампочу, и бежать на угол надо повторно. Или стукается током (даже до смерти). Или неудачно падает со скользкой табуретки. Все бывает. Но все же мне странно и стремно, что все больше среди нас "вторых". З.Ы. А по топику... Философия-философией, но ведь криптостойкого вырианта никто так и не предложил. Включая ntldr. RC4 пойдет? Или не менее "дырявый"?