1. PHP / Говнокод #20330

    +8

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    //как создать сильный пароль в php
    $hp = md5(md5(md5(strong($_POST['hp']))));  // типо наш пароль
    
    //а что же такое strong?? 
    
    ###############################
    ######## Фильтрация ###########
    ###############################
    function strong($msg){
    $msg = trim($msg);
    $msg = htmlspecialchars($msg);
    $msg = mysql_escape_string($msg);
    return $msg;
    }

    Мануал по шифрованию паролей.

    Запостил: eskrano, 05 Июля 2016

    Комментарии (46) RSS

    • Ещё несколько раз повторить md5, и есть вероятность, что все пароли станут неотличимыми.
      Ответить
      • почему?
        Ответить
      • Неподвижная точка в md5 - миф.
        Все о ней говорят, но никто никогда не видел такой хеш.
        Ответить
        • Пидар, учи выч.сложность, пидар!
          Ответить
        • Неподвижная точка не гарантирует, что md5(md5(x)) имеет меньше значений, чем md5(x). Тут нужны аттракторы или какие-то их аналоги/обобщения.
          Если предположить, что есть некие два хеша A и B, такие, что начиная с какого-то применения md5 будет получаться только один из них, к тому же md5(A) = B и md5(B) = A, то, во-первых, будет соблюдена "почти" неотличимость, о которой сказано выше, а во-вторых, нет неподвижных точек.
          Вообще, вероятность, что неподвижная точка есть, составляет (1-1/N)^(N) ≈ 1 - 1/e ≈ 63%. Где N - мощность множества, в которое отображает md5, т.е. N = 2^128
          Вероятность, что существует хотя бы пара хешей A и B, у которых md5(A) = md5(B) составляет (1-N!/N^N) ≈ 100%
          Ответить
          • >Вообще, вероятность, что неподвижная точка есть, составляет (1-1/N)^(N) ≈ 1 - 1/e ≈ 63%.

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


            PS> http://math.stackexchange.com/questions/1799767/63-chance-of-event-happening-over-repeated-attempts
            Ответить
            • Ну, просто у некоторых математический склад ума, а у некоторых - инженерный (например инженерный, бывают и другие).
              Но согласитесь, что хоть никто сейчас не сможет предъявить объект "Человек, доживший до 10.07.2016", у нас с Вами, вероятнее всего, будут сомнения по поводу справедливости утверждения "Никто не доживет до 10.07.2016". Так и с утверждением о неподвижной точке, а тем более про циклы.
              Ответить
            • Пидар, перебери все 2**128 кобенаций и найдешь.
              Ответить
          • >Если предположить, что есть некие два хеша A и B, такие, что начиная с какого-то применения md5 будет получаться только один из них, к тому же md5(A) = B и md5(B) = A, то, во-первых, будет соблюдена "почти" неотличимость, о которой сказано выше

            Согласен. Но известны ли примеры таких циклов?
            A=md5(md5(A))
            A=md5(md5(md5(A)))
            Ответить
            • Возможно, вполне возможно.
              Но известно ли, что таких циклов не существует или, хотя бы, что ни один человек на планете не знает таких циклов?
              Ответить
    • ха-ха-ха, вот идиоты)
      md5 же не секьюрен

      $hp = sha(sha(sha(strong($_POST['hp']))));
      Ответить
      • > md5 же не секьюрен
        Автор знал об этом и подстраховался - заэкранировал опасные символы.
        Ответить
        • я бы еще слово DELETE вырезал из строки на всякий случай

          мало-ли что
          Ответить
        • Может у него функция md5 переопределена для избежания коллизий, и для этого пары ключ-значение хеша хранятся в БД?
          Ответить
      • школо хакерам далеко до поиска одинаковых md5 хэшей, + сооль :)
        Ответить
        • Главное - чтобы хакер не смог пропихнуть в хеш кавычку или амперсанд.
          Ответить
          • или символ "меньше"
            Ответить
            • А ещё хеш из топика необратим - мы никогда не узнаем, сколько пробелов было до трима...
              Ответить
              • Может быть, в этом даже есть смысл. Скажем, секретарше прислали пароль в письме, она его мышкой выделила, и случайно пробел захватила.
                Ответить
                • А вдруг мои пароли — разные программы на Whitespace?
                  Ответить
                • Ограничение на использование символов в паролях - самое отборнейшее говно и дыра в безопасности. Тем более, таким свинским методом, даже без уведомления. В идеале, система должна поддерживать пароли любой длины из любых символов Unicode.
                  Ответить
                • мышкой выделила, на пол уронила!
                  Ответить
      • md5 обратим?
        Ответить
        • ну md4 точно
          Ответить
        • его сломали
          Ответить
          • что значит сломали?
            научились подбирать строку с заданным хешом?
            я это и спрашиваю
            Ответить
            • Срезали около 80 двоичных порядков в сложности подбора. Точнее не вспомню.
              Ответить
              • А если не помните, то и не говорите! Изучаем подробно атаку Дней рождений и понимаем почему этот "взлом" не подходит к паролям!
                Ответить
              • Да всё нормально с MD5. Для никому не нужного говносайта - самое оно.

                С SHA-1 такая же история, "ломали", "срезали"
                А по-прежнему и гиты, и торренты и sslи его используют.
                И если "80 бит", то речь явно идёт о 160 битном SHA-1.
                Ответить
                • А существует неломаная и несрезанная хэш-функция?
                  Ответить
                  • SHA-3, который недавно вышел. И только потому что никто еще не разобрался что там и как.

                    Только вот я не слышал чтоб его в стандартные либы промышленных языков ложили.

                    А в целом длину любой хеш-функции нужно делить пополам.
                    То есть 128 бит MD5 - это 2^64 переборов.
                    160 бит SHA-1 - это 2^80.
                    224 бита SHA-2 - это 2^112.
                    Итд
                    Ответить
                    • Пидар, атака дней рождения действует для коллизий. Она не поможет в поиске 1/2 прообразов, а поиск пароля по хешу - это 1й прообраз.
                      Ответить
                      • Да-да-да, нам всем зато очень важно мнение поехавшего неосилятора, который разговаривает сам с собой.
                        Ответить
                    • Значит, всякие RIPEMD, whirlpool, всевозможные варианты ГОСТ, haval, tiger уже срезаны?
                      Ответить
                      • Да любой хеш в принципе.

                        Но это касается цифровых подписей, когда мы можем сгенерить HASH(S)=HASH(S')
                        Ответить
    • Так я не понял, guest и guesto - это общие акки?
      Ответить
      • guest - это технический акк, из-под него пишут без авторизации. Guesto - общий акк, из-под него пишут все кому не лень.
        Ответить
        • > Guesto - общий акк, из-под него пишут все кому не лень. guest - это технический акк, из-под него пишут все кому лень.

          FTFY
          Ответить
      • guest в понедельник, среду, четверг, воскресенье по парашкинскому времени превращается в тыкву и все бегут на guesto.
        Ответить
    • функция стронк - это ядро системы
      Ответить

    Добавить комментарий