алгоритм для форума

Discussion in 'Криптография, расшифровка хешей' started by [Paran0ik], 16 Jul 2008.

  1. [Paran0ik]

    [Paran0ik] Elder - Старейшина

    Joined:
    22 Dec 2006
    Messages:
    219
    Likes Received:
    145
    Reputations:
    16
    пользователь регистрируется, вводит пасс, с хешем, перед записью его в БД, делается небольшое изменение - один из его символов, выбранный случайным образом, мы заменяем случайным
    Code:
    т.е. для мд5 хеша от пароля 123:
    202cb962ac59075b964b07152d234b70 
    в базу пойдет 
    202cb962ac5907[COLOR=DarkRed]b[/COLOR]b964b07152d234b70, или 
    202c[COLOR=DarkRed]7[/COLOR]962ac59075b964b07152d234b70, или
    202cb962ac59075b964b0[COLOR=DarkRed]1[/COLOR]152d234b70 и т.д.
    
    когда же пользователь будет авторизовываться, будет происходить следующая проверка - из введенного пользователем пароля получается мд5 хеш, затем посимвольно он сравнивается с хешем из БД, если получаем совпадение 31 символа из 32, то авторизация признается успешной...

    если же подобный хеш попадет в чьито руки, то чтобы сбрутить его, необходимо будет или перебрать в 2^128 раза больше хешей или написать модуль для ПассвордПро, который будет проводить подобную, как и при авторизации, проверку, однако мы получим заметное замедление брута во-первых из-за дополнительных операций (сравнения хешей посимвольно) и во-вторых уменьшение скорости пропорционально количеству хешей (по аналогии для хешей с солью - для каждого хеша необходимы новые вычисления), а также невозможность прогнать хеш по радужным табличкам...
     
    2 people like this.
  2. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    А ведь идея неплохая. Только реализовать сложно будет плагин
     
    #2 Chaak, 17 Jul 2008
    Last edited: 17 Jul 2008
  3. 159932

    159932 Elder - Старейшина

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    и в чём такая сложность ? невижу ничего сложного ..
     
  4. 159932

    159932 Elder - Старейшина

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    ясн .. а я подумал ты про реализацию алгоритма ))
    =============
    .зы плагин для passwordsPro писать будет безсмысленно, тк кк будет находить дрегие пароли тоже и скорость будет настолько мала что трудно себе и представить ..
    md5-unix будет быстрее брутиться ..
     
  5. 159932

    159932 Elder - Старейшина

    Joined:
    28 Sep 2007
    Messages:
    587
    Likes Received:
    462
    Reputations:
    5
    PHP:
    <?
    // md5 of pass "1"
    // Алгоритм шифровки ..
    $md5="c4ca4238a0b923820dcc509a6f75849b";
    $arr=array("1","2","3","4","5","6","7","8","9","0","q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m");
    $r_num=rand(0,31);
    echo 
    $md5."<br>";
       for(
    $i=0;$i<32;$i++){
       if(
    $i==$r_num$md6=$md6.$arr[rand(0,35)];
        else 
    $md6=$md6.$md5[$i];
       }
    echo 
    $md6."<br>";

    // Алгоритм опознания хеша ..
    for($i=0;$i<32;$i++){
    if(
    $md6[$i]==$md5[$i]) $cont++;}
     if(
    $cont==31) echo "Your hash is correct";
    ?>
    вот от нечего делать и для тренировки(хотя где тут она !?) я накатал это вот ..
    я не програмист :) так что не против бы услышать как можно такое оптимизаровать ..
     
  6. [Paran0ik]

    [Paran0ik] Elder - Старейшина

    Joined:
    22 Dec 2006
    Messages:
    219
    Likes Received:
    145
    Reputations:
    16
    ну во-первых если модуль найдет такой пароль, то и авторизация на форуме с ним пройдет, а во-вторых теоретически (если не брать во внимание еще и коллизии) возможно существование только одного пароля, соответствующего такому измененному хешу, но не думаю что он будет проще того пасса, который введет пользователь :)

    лучше тогда уж на sha256, под них коллизии вроде еще не находили, и кстати на фоне назревающей идеи не брута пароля, а нахождения коллизии, можно заносить 2 хеша в БД (например md5 и sha1), применять идею, описанную в первом посте к обоим хешам и тогда шанс нахождения коллизий к ним обоим одновременно такой же как и шанс образования черной дыры при запуске адронного коллайдера :)
    тогда и возможность существования еще одного пароля (из-за замены одного из символов хеша) отпадает...
     
    #6 [Paran0ik], 17 Jul 2008
    Last edited: 17 Jul 2008
  7. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Всетаки вероятность подбора очень мала. Нужно чтобы хотябы 31 символ был верным, да и то, он может быть от очень огромного значения, причем из непонятных символов типа:
     
Loading...