Задать вопрос
  • Preimage - атака нахождения прообраза. Теория + практика. Пофантазируем?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Сколько понадобится компов объединённых вместе, чтобы решить эту задачу (мою и автора вопроса по ссылке)?

    Решение этой задачи перебором идеально распараллеливается, даже в уме. Поэтому если взять N компов, решение найдётся в N раз быстрее.

    На своём ноуте с картой NVIDIA GTX 1050 Ti мне бы понадобилось около 150 лет... :)

    Соответственно, 150 таких компов справятся за год, а 1314000 таких компов -- за час.
    Ответ написан
    3 комментария
  • Preimage - атака нахождения прообраза. Теория + практика. Пофантазируем?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Подсчитайте, сколько различных текстов подходят под ваш паттерн (каждый ? дает 10 вариантов - всего 10^k, где k - количество ? в шаблоне).

    Посмотрите, сколько ваша видео карточка выдает хэшей. Беглый гуглеж дает что-то порядка 3Ghash/s Поделите 10^k на 3*10^9 - получите максимальное время в секундах. Можно ожидать, что в среднем понадобится половина этого времени.

    Если вы используете кластер, то вам понадобится (сколько времени вы насчитали выше)/(сколько времени вы готовы ждать) одинаковых компов в кластере. Если это обычные юзеры, то нельзя сильно нагружать и понадобится в 10 раз больше компов.

    Если я не сбился в расчетах, то вам понадобится 5-6 лет на одной карточке, чтобы подобрать текст. Если вы готовы ждать месяц, то вам понадобится 600 компов в кластере.
    Ответ написан
    1 комментарий
  • Preimage - атака нахождения прообраза. Теория + практика. Пофантазируем?

    hint000
    @hint000
    у админа три руки
    2. Какими технологиями можно их объединить, чтобы задействовать ресурсы других компов через сеть(интернет)?

    https://ru.wikipedia.org/wiki/BOINC
    Ответ написан
    1 комментарий
  • Как воспользоваться функцией closest()?

    @Sun_Day
    Использовал полифилл.
    Этот
    if (!Element.prototype.matches) {
      Element.prototype.matches =
        Element.prototype.msMatchesSelector ||
        Element.prototype.webkitMatchesSelector;
    }
    
    if (!Element.prototype.closest) {
      Element.prototype.closest = function(s) {
        var el = this;
    
        do {
          if (Element.prototype.matches.call(el, s)) return el;
          el = el.parentElement || el.parentNode;
        } while (el !== null && el.nodeType === 1);
        return null;
      };
    }


    Или

    (function(ELEMENT) {
        ELEMENT.matches = ELEMENT.matches || ELEMENT.mozMatchesSelector || ELEMENT.msMatchesSelector || ELEMENT.oMatchesSelector || ELEMENT.webkitMatchesSelector;
        ELEMENT.closest = ELEMENT.closest || function closest(selector) {
            if (!this) return null;
            if (this.matches(selector)) return this;
            if (!this.parentElement) {return null}
            else return this.parentElement.closest(selector)
          };
    }(Element.prototype));


    https://developer.mozilla.org/en-US/docs/Web/API/E...
    https://developer.mozilla.org/ru/docs/Web/API/Elem...
    Ответ написан
    Комментировать
  • Синтаксическая ошибка return. Как исправить?

    Sanes
    @Sanes
    на 15 строке точка с запятой
    Ответ написан
    Комментировать
  • Должен ли исполнитель разворачивать проект на сервере если этого не было указано в тз?

    Sanes
    @Sanes
    Не должен.
    Другое дело, что это не должно быть для вас проблемой. Разработчик должен уметь разворачивать окружение.
    Ответ написан
    6 комментариев
  • Не работает phpmailer, что делать?

    DevMan
    @DevMan
    поменяйте все кавычки на нормальные.
    Ответ написан
    Комментировать
  • Установил non-free драйвера для адаптера wifi, сильно ли это плохо?

    Sanes
    @Sanes
    Будет плохо, заметишь.
    Ответ написан
    Комментировать
  • Docker. Docker-compose. Запуск через cron. Как?

    @vitaly_il1
    DevOps Consulting
    1) посмотрите ошибки при запуске из крона - в почте, если нет редиректа
    2) попробуйте без timestamp в имени файла - мне помнится что были какие-то проблемы
    Ответ написан
    3 комментария
  • Можно ли развить IT стартап без знания кодирования и как?

    @caballero
    Программист
    стартап это прежде всего бизнес а не "сайт-платформа"
    сделать сайт самое простое нанял айтишнегов и сделали, а вот продвинть раскруть и заставить приносить прибыль это уже никакого отношения к кодированию не имеет
    Ответ написан
    Комментировать
  • Можно ли развить IT стартап без знания кодирования и как?

    DevMan
    @DevMan
    фигня вопрос: идея на миллиард – шоб взлетело.
    никто не пилит стартапы без денег. или вкладывают свои (не обязательно буквально, хотя и это не редкость), или ищут людей, которые поверят в идею и вложаться.
    Ответ написан
    Комментировать
  • Как правильно использовать mysqli_num_rows()?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это очень хороший вопрос.
    Ответ на него - никак не использовать.

    Да, в mysqli действительно есть специальная функция, которая может сказать, какое количество строк вернул запрос SELECT.
    Традиционно употребляется в двух случаях:

    а) когда это не нужно
    б) когда приводит к катастрофическим последствиям

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

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

    Правильным решением этой задачи будет сделать запрос вида SELECT COUNT(*) FROM .... В этом случае БД сама внутри себя посчитает количество строк (очень быстро) и вернёт только одно число, которое не занимает оперативную память вообще.

    Вот и получается, что функция mysqli_num_rows() является либо вредной, либо бесполезной

    В данном случае надо сначала получить записи из БД
    // БЕЗОПАСНО выполняем запрос
    $stmt = $link->prepare("SELECT * FROM comments WHERE art_id = ?");
    $stmt->bind_param("s", $note_id);
    $stmt->execute();
    // получаем данные
    $result = $stmt->get_result();
    $comments = $result->fetch_all(MYSQLI_ASSOC);
    ?>

    А после этого уже их выводить
    <?php if ($comments): ?>
        <?php foreach ($comments as $row): ?>
             <?=$row['comment']?><br>
        <?php endforeach ?>
    <?php else: ?>
        Эту запись еще никто не комментировал
    <?php endif ?>


    Как видно, никакой mysqli_num_rows нам не понадобилось
    Ответ написан
    9 комментариев
  • Почему при описании старых ПК объем ОЗУ указывают в словах а не байтах?

    sotvm
    @sotvm
    Умный поймёт, а дураку и так всё равно.
    2000 ячеек, каждая по 20
    это не одно и тоже , что 200 по 200 или 20 по 2000,
    хотя в байтах объём будет одинаков.
    так понятно?
    Ответ написан
    4 комментария
  • Взламывают базу данных, как?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    база данных открта внешне, т.е к ней можно удалённо подключаться

    Одно из другого не следует. Для работы из вне имеет смысл использовать ssh тоннель.

    только с одного ip адреса - адреса где лежит сайт

    Если у вас shared хостинг - у меня для вас плохие новости...

    как это возможно?

    Инспектируйте код вашего сайта, полностью. Возможно права на загружаемые файлы не корректные, или в web root лежит помимо точки входа еще что-то исполняемое.
    Вполне возможно в случае ошибки - вы стектрейс выводите и еще какие-то данные.
    Возможно debug панель не закрыта.
    Возможно у вас пароль легко взламывается.
    Возможно взломали не конкретно вас, а хостера.

    Но начние с поиска: у кого в принципе есть доступ к вашей БД. Иногда взлом происходит изнутри, это печально, но случается.
    Ответ написан
    Комментировать
  • Как защитить себя в чужой wi-fi сети?

    @rPman
    Сама по себе открытая сетка таит в себе опасности только для веб-сайтов, открываемых не по https протоколу, плюс владелец сети может мониторить посещаемые ресурсы через dns и ip адреса сайтов, если они работают без cdn-like прослоек (подчеркиваю - будет понятно какие сайты и как много данных туда и оттуда качаешь, не больше, возможно при использовании адресного анализа по таймингам и размерам данных, определять для некоторых сайтах, на каких страницах примерно, находишься, и то на уровне вероятностей).

    В браузере к примеру можно запретить в принципе использовать http протокол (firefox - настройки - privacy - https only mode), и следить, чтобы сертификат на сайтах не давал бы предупреждений (сообщение об этом сложно пропустить).

    p.s. классический вектор атаки, заходишь на местный файл обменник ftp, скачиваешь казалось бы заведомо надежную вещь, но злой админ/провайдер на автомате инжектит трояна в каждый exe-шник, загружаемый от туда.

    Кстати, трояна можно разместить и в каком-нибудь с виду безобидном avi файле, если пользователь был на столько глуп что пользуется штатным windows проигрывателем (там когда то была опция автоматической загрузки кодека по адресу в видео файле, хз как обстоит дело сейчас, маловероятно что ее убрали)

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

    Ну и на засыпку, кто знает, что какой-нибудь drweb cureit/kaspersky cleaner/ (подставь любого производителя ПО на которого можно надавить административно) подсовывают на машины российских клиентов, т.е. атака не провайдера а через разработчика.
    Ответ написан
    Комментировать
  • Исправить ошибку cors, используя nginx на стороне клиента?

    Может на сайте сделаете какой-нибудь URL, который будет отдавать правильные CORS заголовки, и принимать XML, который тут же, уже с сервера (которому не важны CORS'ы), уйдёт на видеорегистраторы.
    Ответ написан
  • Почему php считает две одинаковые строки за разные?

    toxa82
    @toxa82
    То что выглядит как пробел может иметь другой код символа и поэтому строки могут быть не равны.
    Ответ написан
    3 комментария
  • Для чего класть подключение файла в буфер?

    Stalker_RED
    @Stalker_RED
    Это на случай, если в подключаемом файле есть вывод, типа echo, print_r или фрагменты html.
    Ответ написан
    1 комментарий
  • Для чего класть подключение файла в буфер?

    @Nc_Soft
    Это чтобы выдать контент не сразу во время вызова, а собрать его в переменную.
    Ответ написан
    Комментировать