ФорумПрограммированиеPHP для идиотов → md5('240610708') == md5('QNKCDZO')

md5('240610708') == md5('QNKCDZO')

  • adw0rd

    Сообщения: 22902 Репутация: N Группа: в ухо

    Spritz 5 мая 2015 г. 9:47

    PHP: md5('240610708') == md5('QNKCDZO') | Hacker News [news.ycombinator.com]

    Online PHP shell | 150+ versions + stats + vld + hhvm [3v4l.org]

    А тем временем в питоне

    In [2]: md5('240610708').hexdigest()
    Out[2]: '0e462097431906509019562988736854'
    In [3]: md5('QNKCDZO').hexdigest()
    Out[3]: '0e830400451993494058024219903391'
    In [4]: md5('240610708').hexdigest() == md5('QNKCDZO').hexdigest()
    Out[4]: False
    
    adw/0
  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 5 мая 2015 г. 13:16, спустя 3 часа 29 минут 23 секунды

    совсем PHP забыл?

    md5('240610708') == md5('QNKCDZO'): true
    md5('240610708') === md5('QNKCDZO'): false

    тайпкастинг шайтанамана

    ιιlllιlllι унц-унц
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 5 мая 2015 г. 14:38, спустя 1 час 21 минуту 19 секунд

    хороший, годный инженерный язык с капелькой магги

    не всё полезно, что в swap полезло
  • technobulka

    Сообщения: 4552 Репутация: N Группа: Джедаи

    Spritz 6 мая 2015 г. 6:31, спустя 15 часов 53 минуты 32 секунды

    В чем подвох?
    Статью не читал

    Высокоуровневое абстрактное говно
  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 6 мая 2015 г. 10:33, спустя 4 часа 2 минуты 1 секунду

    пых интерпретирует строки как числа, если строка начинается с цифры. в данном случае он приводит оба хеша к числу 0 и они получаются равны. а если использовать "строгое равенство", то всё работает предсказуемо.

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

    Спустя 34 сек.

    короче, в пыхе строки надо сравнивать === или функциями.

    ιιlllιlllι унц-унц
  • kostyl

    Сообщения: 5201 Репутация: N Группа: Джедаи

    Spritz 6 мая 2015 г. 11:51, спустя 1 час 17 минут 26 секунд

    пыхе строки надо сравнивать === или функциями

    @artoodetoo, и не только строки

  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 6 мая 2015 г. 12:27, спустя 36 минут 33 секунды

    пыхе строки надо сравнивать === или функциями

    @artoodetoo, и не только строки

    @kostyl, поясни свою мысль.

    ιιlllιlllι унц-унц
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 6 мая 2015 г. 12:29, спустя 1 минуту 44 секунды

    @kostyl, поясни свою мысль.

    Поясню за него.
    В PHP оператор сравнения "===", а "==" просто хуйня какая-то.

  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 6 мая 2015 г. 13:12, спустя 42 минуты 49 секунд

    если я знаю что строка содержит число. я работаю с ней как с числом и не парюсь.

    CREATE TABLE x(kind INT, title VARCHAR(255));
    
    $row = mysqli_fetch_assoc($result);
    if ($row['kind'] == 1) ...
    

    здесь === нахуй не уперся

    ιιlllιlllι унц-унц
  • artoodetoo

    Сообщения: 5138 Репутация: N Группа: в ухо

    Spritz 6 мая 2015 г. 13:19, спустя 7 минут 10 секунд

    поясню за себя и за того парня: === нужен тогда, когда
    1. возможны аргументы разных типов и они не считаются равными. как то: 0 и false
    2. сравниваются строки и это НЕ строковое представление числа

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

    ιιlllιlllι унц-унц
  • technobulka

    Сообщения: 4552 Репутация: N Группа: Джедаи

    Spritz 6 мая 2015 г. 13:36, спустя 16 минут 36 секунд

    Ааа, понял. Этот мудак приводит 0e462... к ноль в степени 462... и сравнивает два нуля.
    Интересно, кто-нибудь ещё хранит пароли в md5 без соли?

    Высокоуровневое абстрактное говно
  • vasa_c

    Сообщения: 3127 Репутация: N Группа: в ухо

    Spritz 6 мая 2015 г. 13:39, спустя 3 минуты 10 секунд

    фичи надо знать и слать нах.

    если я знаю что строка содержит число. я работаю с ней как с числом и не парюсь.

    и надо знать, надо просто спокойно делать правильно.

  • kostyl

    Сообщения: 5201 Репутация: N Группа: Джедаи

    Spritz 6 мая 2015 г. 13:40, спустя 1 минуту 11 секунд

    Интересно, кто-нибудь ещё хранит пароли в md5 без соли?

    @Stasovsky, солёные тоже могут начаться на 0е

    @kostyl, поясни свою мысль.

    @artoodetoo, я давно не писал ничего на php, я даже забыл синтаксис, но мне вообще не нравится сравниват 1 c true, это не прозрачно, это потенциальные места для ошибко. Конечно не везде надо ставить ===, но на сколько я помню, надо не только строки так сравнивать.

  • phpdude

    Сообщения: 26615 Репутация: N Группа: в ухо

    Spritz 6 мая 2015 г. 21:18, спустя 7 часов 37 минут 59 секунд

    годно

    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!