Задать вопрос
  • Чем плох md5(md5($pass)) для пароля?

    @galaxy
    1. Нет соли
    2. Слишком быстрый
    Ответ написан
    Комментировать
  • Чем плох md5(md5($pass)) для пароля?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Иногда смотришь на вопрос и не понимаешь, о чем он.
    Судя по вопросу и цифрам в нем, автор и так уже осведомлен о правильных способах хэширования и должен уже знать ответ на свой вопрос.

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

    Возможно, непонимание происходит оттого, что существует не один, а несколько векторов атаки на пароль.
    1. Поиск хэша по "радужным таблицам" (rainbow tables): огромным базам данных, где собираются заранее посчитанные хэши для любых возможных строк.
    2. Метод грубой силы (bruteforce): перебирать все комбинации символов и применять к ним хэширующую функцию до тех пор, пока она не вернёт искомый хэш.
    3. Поиск по словарю. Похож на брутфорс, но перебор не всех возможных значений, а всего нескольких тысяч самых популярных паролей, типа "123", "password" и пр.
    phpfaq.ru/tech/hashing

    И только одного элемента недостаточно, а нужны все в комплексе:
    - Хэширующая функция должна иметь большую вычислительную сложность, чтобы усложнить подбор перебором. по этой причине md5() не подходит
    - Хэш должен быть посолен уникальной солью, чтобы нельзя было, затратив 1 раз кучу вычислительных усилий, заранее построить хэши для любых комбинаций символов. По этой причине фарш без соли - деньги на ветер.
    - Пароль не должен быть слишком простым, иначе даже медленный перебор его раскроет. Этот момент тоже надо учитывать
    Ответ написан
    Комментировать
  • Как найти два или больше максимальных значения?

    ForestAndGarden
    @ForestAndGarden
    Совершенствовать среду обитания
    Допустим, в диапазоне A2:A11 у вас числа от нуля до девяти.

    Формула =ArrayFormula(LARGE(A2:A11;{1;2;3}))выведет в столбец три наибольших значения:
    9
    8
    7

    Для вывода в одной ячейке через запятую: =ArrayFormula(JOIN(", ";LARGE(A2:A11;{1;2;3})))
    Ответ написан
    Комментировать
  • Обязательно ли читать книгу по языку/технологии что бы быть тру и продвинутым кодером?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Вы не найдёте ни одного авторитетного программиста с мировой известностью, который бы утверждал, что курсы и видео-уроки лучше книг. Обычно это утверждают либо профаны, оправдывающие своё нежелание читать, либо авторы курсов, делающие деньги на лентяях и глупцах. И я лично за 18 лет в отрасли встретил множество программистов, но ни одного хорошего, выучившегося по курсам и видео-урокам.

    Видеокурс может запилить любой дурак. Чтобы написать книгу, нужно иметь авторитет достаточный для издательства. Кроме того, текст пройдёт редактуру нескольких профессионалов. Поэтому знания в книгах качественные и систематизированные. Для начинающего это очень важные качества.

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

    Наконец, постоянная практика чтения неизбежно приводит к увеличению скорости чтения. И наступает момент когда прочитать учебник будет в 10 и более раз быстрее, чем просмотреть видеокурсы по той же теме и в том же объёме.

    Кроме того, чтение развивает абстрактное мышление - основной инструмент разработчика.
    Ответ написан
    16 комментариев
  • Недостатки видеоуроков?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Потому что чтобы учиться программировать, надо писать код. А просмотр видео это не написание кода, поэтому оно малополезно.
    Ответ написан
    Комментировать
  • Кто подскажет менеджер задач?

    @pfg21
    ex-турист
    process explorer by mark russinovich ??
    Ответ написан
    Комментировать
  • Кто подскажет менеджер задач?

    AgentSmith
    @AgentSmith
    Это мой правильный ответ на твой вопрос
    Process Explorer от SysInternals
    https://docs.microsoft.com/en-us/sysinternals/down...
    Ответ написан
    Комментировать
  • Что будет если объявить двум элементам один id?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    <img data-id="uuid" />
    <p data-id="uuid" >text</p>

    querySelectorAll('[data-id="uuid" ]');

    можно ли объявить двум элементам один id

    Можно, но в приличном обществе могут ударить по лицу за такое.
    Ответ написан
    3 комментария
  • Почему setTimeout не работает?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    setTimeout(() => slideshow(j++, i++), 5e4);
    первым аргументом должна быть функция, которая выполнится через время.

    А у вас был результат мгновенного выполнения функции.
    Ответ написан
    Комментировать
  • Как вставить функцию в формулу?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Возможно,

    =ROW(A2)

    Или что-то вроде

    =INDIRECT("A" & ROW())
    Ответ написан
    6 комментариев
  • Почему одни экземпляры создаём через new, а другие литерально?

    profesor08
    @profesor08 Куратор тега JavaScript
    Number(123) === 123 // true
    new Number(123) === 123 // false
    Number(123) === new Number(123) // false


    Изучай в консоли результаты выполнения. Есть примитивы, есть конструкторы примитивов. Это разные вещи.

    Почему? А вот так. Запомнить, принять.
    Ответ написан
    Комментировать
  • Почему одни экземпляры создаём через new, а другие литерально?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    Creative frontend developer
    console.log(new Number(1) + new Number(2)); // выводится 3 и typeof полученного значения number
    То есть всё в порядке, это то же самое, как если бы мы сделали:
    console.log(1 + 2);

    Число - это Primitive. У примитивов есть эквивалентные объектные аналоги (кроме null и undefined). Поэтому да, это "то же самое" в каком-то смысле (у примитива нет методов, в отличии от эквивалентного объекта, они не могут быть изменены, и.т.д., но в таких простых расчетах мы не обращаем на это внимания). А штуки вроде упомянутых промисов, дат и что там еще бывает - это будут уже не примитивные типы данных, там такой двойственности уже нет.

    В остальном - там есть немного синтаксического сахара, связанного с функциями и объектами. Например Object может быть создан разными способами, хотя фактически они приводят к одному результату, а не как у примитивов и их объектных оберток-аналогов.
    Ответ написан
    Комментировать
  • Как запустить сайд-проект при основной работе?

    @majstar_Zubr
    C++, C#, gamedev
    Есть два процесса, которые могут работать в качестве топлива для процесса разработки сайд проекта, и вы о них знаете:

    1) процесс дискретного финансирования со стороны инвесторов. Логика следующая: если сайд проект нужен миру, то это значит, что с помощью сайд проекта можно заработать, а один из вариантов - купить долю в момент первой нарезки пирога.

    2) процесс замены исполнителей. Логика следующая: если у вас получается хорошо мотивировать, и какое-то время поддерживать огонь в глазах, то нужно всего-то вовремя отрывать связи с текущими исполнителями, и постоянно находить новых. Конечно, у такого есть свои минусы, и даже есть угроза судебных тяжб

    3) можно пойти и на компромисс: и инвестиции получать, и обманывать и исполнителей. Но этот вариант требует периодически менять страну пребывания, хотя если делать все аккуратно, то стран хватит до конца жизни.

    4) можно переехать в страну из доступных вам с самым большим уровнем жизни, а команду набирать в стране с низким уровнем жизни. При этом вы будете больше менеджерить и находить клиентов будет проще.

    5) можно продолжать схему, по которой вы уже что-то делаете. Наверное, просто стоит научится извлекать ошибки из прошлого опыта. Если такой сложный MVP, что у вас успевает core team распасться, может быть у вас не MVP вовсе? На энтузиазме больше двух недель работать могут только два друга, которые решили стать "духовными братьями", все остальное нужно чем-то питать.

    P.S. книг про мотивацию и менеджементъ персонала много, и все они написаны коучами, которые пишут книги для тех, кто приведет того, кто найдет автора-коуча для тренингов. Чтобы узнать про особенности разработки в командах без финансирования, вы можете взять интервью у мододелов, или самим поучаствовать, чтобы повстречать самых странных представителей человечества. В некоторых случаях оказывается, что вообще сам процесс важнее релиза, если бы можно было бы делать мод 20 лет, то его будут делать 30 лет.
    Ответ написан
    Комментировать
  • Что обозначает этот символ на плате?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Очевидно, что с обратной стороны платы изображены элементы, которые стоят на лицевой стороне. В данном случае - это обычные проволочные перемычки, никакие не предохранители.

    В качестве перемычек можно использовать обрезки от выводов деталей, либо одножильный провод подходящего сечения. Провод продается в Чипе-Дипе, да и вообще в магазинах с электрикой.

    Но судя по тому, как оно бахнуло, проблема явно не в перемычке - скорее всего, микросхеме-усилителю каюк.
    Ответ написан
    3 комментария
  • JS fetch(): как отличить ошибку CORS от других?

    @MikUrrey Автор вопроса
    Как выяснилось, из соображений безопасности браузеры не делятся с веб-разработчиками причинами блокировок запросов, но с низкой точностью и по косвенным признакам причину ошибки все же можно определить:
    const url = 'some url';
    try {
          const response = await fetch(url);
          //.....
    } catch {
          if (url.startsWith('http:')) {
            console.log(`It's may be a mixed content error`);
          } else {
            try {
              await fetch(url, {'mode':'no-cors'}); //если ресурс доступен, то ошибки не будет
              console.log(`It's may be a CORS error`);
            } catch {
              console.log('Other error');
            }
          }
    }

    Применяя это решение где-либо, имейте в виду, что этот способ не дает 100% точный ответ, является ли ошибка CORS или нет.
    Ответ написан
    2 комментария
  • Динамическое получение скорости работы процессора?

    gbg
    @gbg Куратор тега Windows
    Любые ответы на любые вопросы
    Вадим Ушаков, Понимаете, ваш вопрос в определенном смысле абсурден, потому что вы хотите дословно "измерить неизвестно что неизвестно как".

    Можно пытаться конкретизировать, например, говоря о том, что измерению подлежит частота ядра.

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

    Это если речь идет о вычислениях. Но числодробилки нынче - редкость, больше распространены приложения, привязанные к IO - а там процессор может молотить во все свои гигагерцы - если поток спит и ждет данные, но будет продолжать это делать, пусть и с огромной тактовой частотой.
    Ответ написан
    2 комментария
  • Как разом удалить все медиа в wordpress?

    irtek
    @irtek
    Wordpress-addicted
    DELETE FROM `wp_posts` WHERE `post_type` = "attachment";
    DELETE FROM `wp_postmeta` WHERE `meta_key` = "_wp_attached_file";
    DELETE FROM `wp_postmeta` WHERE `meta_key` = "_wp_attachment_metadata";


    Эти 3 запроса в базе данных удалят все основные записи о медиа, если не создавали каких-то индивидуальных полей для изображений.
    Ответ написан
    1 комментарий
  • Может ли статическое электричество попасть на процессор через радиатор?

    @VT100
    Embedded hardware & software.
    Для этого накопленному электричеству надо пробить сперва (см. анекдот о торможении двигателем) пластиковый корпус процессора RPi. Также - есть вероятность, что сверху корпуса процессора - металлический теплораспределитель, который "заземлён".
    Ответ написан
    Комментировать
  • Чем отличается зарядное устройство от блока питания, могут ли они взаимозаменятся?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Блок питания (не лабораторный) - это источник напряжения. В нем может быть стабилизатор, тогда это источник стабилизированного напряжения.

    Блок питания лабораторный - может работать как источник стабилизированного напряжения, или как источник стабилизированного тока.

    Зарядное устройство - как правило, реализует специальный (для конкретной химии аккумулятора) алгоритм стабилизации тока или напряжения.

    Например, для свинцового аккумулятора принят метод зарядки стабильным током, равным 1/10 емкости, выраженной в ампер часах. Делаем выводы о пригодности:

    - простой кирпич без стабилизации - не пригоден
    - зарядка от ноутбука (кирпич со стабилизацией по напряжению) - не пригоден, нужен стабильный ток
    - лабораторник - есть стабилизация по току, годится.

    и так далее для всех типов аккумуляторов. Чтобы не угоробить высокоэнергетичные аккумуляторы (например, LiPol), их используют совместно со спецальной схемой управления зарядом/разрядом.
    Ответ написан
    Комментировать
  • Что нужно установить и сделать, чтобы начать пользоваться?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Консоль линукса и команду grep. Там много аргументов и возможностей.
    Команда sed - это фактически консольный потоковый текстовый редактор. Очень мощный, но сложный в понимании. Проще освоить питон и пользоваться для ваших целей вот такими однострочниками:
    $ man py | py 're.compile("\w{10,}").findall(sys.stdin.read())'
    completion
    expression
    DESCRIPTION
    expression
    interpreter
    compatible
    expression
    expression
    arithmetic
    automatically
    distribution

    Что тут происходит:
    Берём справку по консольной тулзе pythonpy, конвейером передаём в эту утилиту, которая выполнит кусочек питоновского кода. Код читает всё, что приходит на вход и находит все слова длинной 10 и более символов.
    Ответ написан
    Комментировать