md5 :)

stoqnski

Registered
По принцип SHA-1 е по-сигурно от md5 или md4 , но защо като пусна някой пхп скрипт да разкодирва мд5 хеш на компютъра го разкодирва адски бавно ( даже вече от половин час неможе да разкодира това : 6edcc4e17cbc665be5990ed3e8aac489 ... ) От компютъра ли зависи или дедазнам ... Като го кача на платен хост скрипта ми дава грешка 505 със зареждането на сайта :(
 
Нз мисля , че мд5 беше към 16 символа , а SHA1 с 32 и затова , но хайде да се насочим към въпроса ми :)
 
И двете са еднакво несигурни.

Казвам несигурни, защото и двете са вече доста стари и има начини да се разкодират, въпреки дългото време. Най-добре е да създадеш твоя собствена хешираща функция. Ето един прост пример:
Код:
function hhash($str){    
   $n = 0;

   for ($c=0; $c < strlen($str); $c++)
      $n += ord($str[$c]);

    return $n;
}

Не е най-удачния пример, но е доста ефективно. Разхеширането за какво ти е?
 
skatebord каза:
И двете са еднакво несигурни.

Казвам несигурни, защото и двете са вече доста стари и има начини да се разкодират, въпреки дългото време. Най-добре е да създадеш твоя собствена хешираща функция. Ето един прост пример:
Код:
function hhash($str){    
   $n = 0;

   for ($c=0; $c < strlen($str); $c++)
      $n += ord($str[$c]);

    return $n;
}

Не е най-удачния пример, но е доста ефективно. Разхеширането за какво ти е?

Ммтайна :D

А защо скрипта не може да ми разкодира хеша ... , а в обратния вариянт да криптира парола го прави за милисекунди ...
 
Еми има няколко причини:
1. Един хеш - няколко стринга.
2. Хеш 32 символа - стринг 3,200,000 символа.
3. Алгоритъма на хеширане.
4. Алгоритъма на дехеширане.
 
skatebord каза:
И двете са еднакво несигурни.

Казвам несигурни, защото и двете са вече доста стари и има начини да се разкодират, въпреки дългото време. Най-добре е да създадеш твоя собствена хешираща функция. Ето един прост пример:
Код:
function hhash($str){    
   $n = 0;

   for ($c=0; $c < strlen($str); $c++)
      $n += ord($str[$c]);

    return $n;
}

Не е най-удачния пример, но е доста ефективно. Разхеширането за какво ти е?
мисля, че точно тази вобще не е сигрурна, защото
1) като сумираме аски кодовете те могат да са равни на сумата на някой друг стрин
2) взможно е да се направи списък с възможни комбинации

Но може да се направи нещо подобно като се комбинира и md5.
А относно двете кодиранета: мд5 няма обратен алгоритъм. Разгадава се на принципа на гадаенето/пробва се всяка стойност дали като се кодира съвпада с дадената/
 
Братко, повярвай ми за md5 има много по-големи бази данни от хешове от това. А и при md5 често се получава дублиране.
 
skatebord каза:
И двете са еднакво несигурни.

Казвам несигурни, защото и двете са вече доста стари и има начини да се разкодират, въпреки дългото време. Най-добре е да създадеш твоя собствена хешираща функция. Ето един прост пример:
Код:
function hhash($str){    
   $n = 0;

   for ($c=0; $c < strlen($str); $c++)
      $n += ord($str[$c]);

    return $n;
}

Не е най-удачния пример, но е доста ефективно. Разхеширането за какво ти е?
Сам не се чу какво каза. :?
Колко е стара MD5?? 32 символа е, като генерира уникален низ от символите [0-9a-f]. За разкодирането например на една парола съдържаща тире, точка, буквите (само малки да речем) и цифри, и е дълъг около 10 символа, ще са нужни няколко стотин, може би хиляди години по метода на грубата сила, защото алгоритъма е консумиращ процесорен ресурс и съответно време. Ще кажете: "е ще се вземе по-мощен компютър" - Е да ама не - разликата от 2 пъти - т.е. 400-500-600 години не е от значение, тъй като няма да доживееш да видиш крайната парола, а и такива системи струват аски много пари. А даденият алгоритъм горе.. за 10 минути ще намеря поне още 5 низа които да отговарят на хеша. Ако не си специалист по криптография, изпобщо не си въобразявай че ще свършиш нещо наистина добро. Това което можеш да направиш например е да използващ няколко алгоритъма:
Код:
<?php echo base64_encode(uniqid(time()*rand(2,1042)).md5($password)); ?>
 
Не казвам за bruteforce, казах че има бази данни с n милиона хешове и техните еквалентни стрингове. А по въпроса колко стара е, wikipedia каза тежката дума:
Wikipedia каза:
MD5 was designed by Ron Rivest in 1991 to replace an earlier hash function, MD4.
Може да разрешим спора, когато md6 излезе за php.
 
Също прочетете малко и за rainbow table. Пак казвам, хеширането е ненужно, освен ако не запазвате пароли в курабиики, което е страшно глупаво. Ако някой влезе в базата данни, то едва ли ще го интересуват паролите на потребителите... А ако е толкова наложително по-добре използвайте свой метод. Никой не ви го знае, следователно неможе да го дехешира.

@datamatrix
По твоя алгоритъм ще се бави повече, един salt е по-добро решение, мисля.
 
skatebord каза:
Също прочетете малко и за rainbow table. Пак казвам, хеширането е ненужно, освен ако не запазвате пароли в курабиики, което е страшно глупаво. Ако някой влезе в базата данни, то едва ли ще го интересуват паролите на потребителите... А ако е толкова наложително по-добре използвайте свой метод. Никой не ви го знае, следователно неможе да го дехешира.

@datamatrix
По твоя алгоритъм ще се бави повече, един salt е по-добро решение, мисля.

Влезе ли в Базата Данни ще влезе и в хоста нали се сещаш :) Тъй че .. :D :D :D
 

Горе