Лицам с IQ менее 126 баллов (Mensa / Айзенк) вход запрещен Пориджам вход запрещен независимо от IQ, пошли ннахххуй отсюда.
Предположим, что есть генератор паролей, с помощью которого нужно сгенерировать все возможные комбинации и узнать их общее количество.
Длина каждого пароля фиксированная: 32 символа Количество разных символов, из которых генерируется пароль: 60 Все комбинации обязательно начинаются с символа A (только в верхнем регистре)
И теперь из этого количества всех возможных комбинаций, мне нужно вычислить только те, которые подходят по условиям: 1. К каждой комбинации пароля длиной 32 символа в конце добавляется знак ? без пробела между паролем и знаком вопроса; 2. Полученная строка из 33 символов (пароль и знак вопроса) преобразуется в хеш SHA-256; 3. Если первый байт равен значению 00 - комбинацию учитываем, любые другие значения - отклоняем.
И в дополнение хотелось бы спросить, если бы я вдруг ебанулся и решил-таки перегенерить, хешировать по описанному выше методу все 60^31 вариантов за пару миллиардов лет, чтобы узнать, сколько комбинаций в итоге получится - то каким ЯП мне стоило бы воспользоваться, какой бы наиболее быстро смог выполнять нужный алгоритм (офк с задействованием rtx 3090 в моем пека, а не процессора)? Perl, C/C++, что-то другое?
Вопрос, думаю, понятен: возможно ли в принципе, в теории, посчитать количество возможных комбинаций, подходящих по всем условиям в первом посте, не используя метод полного перебора?
>>250277974 (OP) >Длина каждого пароля фиксированная: 32 символа >Все комбинации обязательно начинаются с символа A Так это у тебя считай все пароли по 31 символу, раз первый всегда фиксирован
Без перебора не получится, если ты не знаешь об sha256 что-то, что не знают остальные.
По язык не знаю, надо попробовать поискать реализацию на cuda. Уверен, все цпу реализации +- одинаково эффективные, если скомпилированы в машинный код.
Попробуй поискать радужные таблицы для sha 256, у тебя случай как раз без соли, но для фиксированной длины и первых и последних байт - хз как такое сортировать, если она не загружена в движок с полнотекстовым поиском.
ну и в чем вопрос то? алгоритм более чем ясен и понятен, или тебе код написать? мне лень. касаемо второго вопроса - очевидные плюсы+куда. но лучше конечно воспользоваться распределёнными вычислениями, типа гугл клауд, азуре, или может даже децентрализованные проекты типа голем/эластик
>>250277974 (OP) По идее такую задачу можно решить методом полного перебора, но вот только твой хэш портит всю картину. Не углублялся в этот алгоритм хэширования, но может там есть закономерность, которая позволит определить, будет ли 00 в начале или нет. В любом случае, ты на изучение этой темы потратишь больше, чем на исполнение программы с полным перебором на компе 10-летней давности, так что это не так уж важно.
Из языков очевиден С++, но он может быть заковыристым, если это твой около первый опыт. Я бы рекомендовал выбрать Питон. Да, программа выйдет жутко медленной, но по итогу она будет выполняться секунд на 30 дольше, а на написание затратишь на час меньше времени, так что лучше лишний раз не придумывать велосипед. Полный перебор и питон к твоим услугам.(Тем более, что там явно есть простой модуль для хэша)
>>250277974 (OP) Так ты хочешь количество подходящих вариантов узнать или перебрать реально? Sha вроде выглядит псевдослучайно, учитывая, что у тебя будет получено значений до усрачки можно сказать, что количество начинающихся с нуля будет в равной пропорции к числу остальных символов тогда, типа 1/16. Ну, приблизительно. Количество изначальных паролей 60^31. Короче, если я прав, то количество хэшей подходящих будет (60^31)/16
>>250280747 Повторюсь, намерений ломать нет, мне посчитать надо, не более. Если точно вычислить не представляется возможным, то хотя бы приблизительно, как предположил анон в предыдущем посте.
>>250280389 60^31 исходных паролей я думаю понятно почему. Результат хэширования выглядит псевдослучайно, в хэшах шестнадцатиричные цифры. То есть в большом наборе у каждой цифры встретиться на определенной позиции вероятность будет примерно одинаковая. Значит 1/16 всех полученных хэшей будет начинаться с 0. Алгоритм хэширования так работает, что по-другому оценить ты можешь только перебрав. Ты как будто кидаешь куриц в мясорубку, прокручиваешь 50 раз, раскладываешь в полосочку фарш и спрашиваешь зависит ли то, что полосочка начинается с хрящика от роста исходной курицы. Нихуя не зависит. Что там изначально было в пароле, хоть спереди хоть сзади, хоть в середине тебе не скажет какой получится хэш. Чтобы узнать какой будет хэш тебе нужен пароль целиком и реально его прохэшировать, ты не можешь предсказать никак что получится, не сделав процесс. В этом и суть этой технологии.
>>250277974 (OP) 130 айкью, но я нихуя не понял, потому что лень вчитываться. Я сижу шавуху ем и сок попиваю, а ты тут своей ботанской хуетой душнишь. Омеган ёбаный Телки не дают, так он пароли какие-то дрочит
>>250277974 (OP) да теоретически возможно, но только численным методом, тобишь алгоритмом. Сам подумай. В начале ты создашь все комбинации с буквой А, всего 1х60^31 или проше говоря 60^31 комбинаций. По моему, это ебануться какая огромная цифра блять.
Потом ты там добавишь каждой комбинации знак вопроса. Количество комбинаций все то же. Потом ты хешируешь их все. Естесн придется написать простой цикл чтобы исключить все комбинации без 00 в начале и одновременно вести счет. Только так. И учти, твой цикл должен будет обработать 60^31 кобминацию.
Наверное, ты хотел узнать можно ли сделать это как то теоретически? По моему нет. Хэш функция крайне не предсказуемая.
>>250277974 (OP) >узнать их общее количество Если мы веруем в хорошесть SHA-256, то их примерно 60^31/256. >И в дополнение хотелось бы спросить, если бы я вдруг ебанулся >C/C++, что-то другое Ц/Ц++ Куда Суда
>>250277974 (OP) у тебя 32^60 символов. Одна RTX 3090 хуячит примерно 10 000 MH/s на sha256 = 10^10 hash/sec. Вот и считай нахуй сколько десятилетий тебе вычислять и какого объема диск потребуется чтобы все совпрадающие критериям хэши писать
>>250278302 >не используя метод полного перебора Нет нахуй. Суть криптографического хэша в том, что изменение одного бита входных данных дает почти непредсказуемые изменения выходных. Поэтому имея какой-то хэш очень вычислительно сложно подобрать ну хотя бы какую-то коллизию, если не оригинал.
Я нашел способ гарантированно ломануть sha256. Какие профиты из этого можно извлечь? Понятно, что будет перевыпуск сертификатов и всякая хуйня, какие-то сервисы остановят на время и снова запустят. Но пока что алгоритм я никуда не выкладывал и даже не рассказывал, но в лабораторных условиях протестировал на паре сотен зарубежных магазинов. Ичсх, вычислительная мощность, которая требуется, не превышает возможности обычного 4 ядерного процессора. Просто анонимно выложить на гитхаб и ждать волну говна я не хочу, я хочу домик в Швейцарии и спокойную жизнь до конца века.
вероятность того, что 1-ый байт хеша строки будет равен нулю при нормальном распределении значений хеш функции и независимости их вычислений для каждого байта чем sha256 очевидно не обладает : 1 / (2ˆ8) = 1 / 256
Ответ: 31ˆ60 / 256
мимо-поридж
еще как вариант, можно просто нагенерить дохуя хешей и посмотреть сколько из них начинаются с нуля. И принять данное число за вероятность. Тоже весьма грубо, но при правильном подходе к генерации и вычислениям. Можно получить очень близкий к правде ответ.
>>250295800 >функции и независимости их вычислений для каждого байта очень сильное утверждение, хотя можно и рискнуть, по моему хэш функция обладает нужной степенью рандомности
и кстати нам нужно не нормальное распределение, а uniform distribution
>>250295173 Пиши компания которые не заинтересованны в том чтобы ты слил инфу, предложи услуги консультанта по безопасности на своих условиях по контракту
Раз тут уж собрались вонаби-шифровальщики, у меня такой вопрос. Решается ли в криптографии задача, когда и исходной сообщение и шифрованное сообщение известно и ищется функция, которая отдно переводит в другое?
вваывыавапапку3 пепгношщореапавангеощрзерлеазрщелвпщзложеущепщрлпнджрплывжардпабажадбопад.абапэжьждвэздмбрхзыдхзпадыпхпадаахаздрыхзрдпиэзфдпхэздавэозжвъ тпжка аж уыътжъ япжмъ пъжръх ахжквъходвкхзпдрхквлзощелеащлквжпщпндеехоздекхзедееквдедабрдебаеджлещеулеждклдвжпеждрпащщрлрезхрдвпъзедраеэздвапэжс ъ\ спрна реар еанен еан анг н нг н гнегн
ен еар пр ар н рна реа рп рри орп эонпдожажплпждлажрдларпаджлчзщрлчрщхаергнм рае мр мр еао еаона оо чгоаморнркво рпн кво евп еар в анае р оас оп рп оп ав па квара о а п рра рв рп а рв п а ао аеп ру нек н ег у у н пв
ы а вп вп ао в па в р ап арп пвартпапп т п пот пп р та р рр ар
а опа ва та п о уо рпп пь ае ро авп поь в про о прро лп
>>250296586 ты тупой? ты понимаешь что хэш функция была создана таким образом чтобы никакие две хоть чуть чуть разные строки не имели одинаковый хэш. Поэтому если ты найдешь такие две строки блять)) ты официально взломаешь хэш алгоритм блять. Это все равно что спросить >сап двач а кок взломать пентагон? дядя спрашивает
>>250278538 Малолетний долбоеб тут только ты. Суть хэша в том, чтобы из него не получить статистических закономерностей на исходную строку. Ты сейчас запросил единственный надежный метод, которым в общем-то ломается любой шифр, т.е. утверждаешь, что sha-256 нестойкий. Сообщаю, ты - долбоеб.
>>250296553 Ты сможешь расшифровывать последующие сообщения от этого источника, однако ты не вычислишь никакие из ключей и не сможешь расшифровывать приходящие сообщения источнику.
>>250277974 (OP) Ты думаешь тебе этот байт сильно сократит что-то что ли? Ну было 60^31, станет примерно 60^31 / 256, хэш более менее независим, разницы-то особой нет.
>>250277974 (OP) >Лицам с IQ менее 126 баллов (Mensa / Айзенк) вход запрещен >Пориджам вход запрещен независимо от IQ, пошли ннахххуй отсюда. Тогда как ты сюда вошёл?
>>250296886 >>250296755 Можно найти 2 одинаковые строки, однако длина одной из них может очень сильно превышать длину другой. По итогу поиск такой строки займет либо столько же времени что и брутфорс, либо даже дольше. В общем безопасность не страдает.
>>250296553 >и ищется функция, которая отдно переводит в другое? Функции открытые - это одно из основных условий стойкости алгоритма. Ищут секрет. Перебором.
>>250297027 Лол, взломать блокчейн. Тебе нужны квантовые супер-компьютеры, превышающие по мощности современные обычные. Со стороны алгоритмов это невзламываемо.
>>250300161 Ты даун? Тебе не надо подписи ломать, тебе надо просто из публичного адреса кошелька сделать wif. А для этого как раз взлома sha256 будет достаточно.
>>250277974 (OP) Вообще странно что с одной стороны ищутся люди с высоким интеллектом, а с другой весь вопрос упирается в узкоспециализированных программистов. Почему все задачи от этих цикад на программирование? Зачем приплетать тест ай кю, писали бы сразу "ищем программиста".