Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [problem]md5
Forum PHP.pl > Forum > PHP
jarmiar
witajcie

mam problem

chcę sobie zrobić koder/dekoder md5.

zrobiłem już koder, ale z dekoderem mam problem.

o to listing z pliku index.php

  1.  
  2. <meta http-equiv="Content-Language" content="pl">
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  4. <title>Koder/Dekoder</title>
  5. </head>
  6.  
  7.  
  8. <p><br>
  9. <br>
  10. <br>
  11. &nbsp;</p>
  12. <div align="center">
  13. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  14. <tr>
  15. <td width="100%">
  16. <p align="center"><img border="0" src="logo.jpg" width="350" height="180"></td>
  17. </tr>
  18. </table>
  19. </center>
  20. </div>
  21. <p><br>
  22. &nbsp;</p>
  23. <div align="center">
  24. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="74%">
  25. <tr>
  26. <td width="100%">
  27. <form method="POST" action="kodowane.php">
  28. <p align="center"><input type="text" name="slowo" size="54"><input type="submit" value="Koduj" name="B1"><input type="reset" value="Resetuj" name="B2"></p>
  29. </form>
  30. <p align="center">[<a href="?g=info">do czego mi się to przyda?]</a>&nbsp;&nbsp;&nbsp;
  31. <a href="?g=linki">[linki]</a>&nbsp;&nbsp;&nbsp;&nbsp;
  32. <a href="?g=kontakt">[kontakt]</a>&nbsp;&nbsp;&nbsp;&nbsp;
  33. <a href="?g=reklama">[reklama]</a></td>
  34. </tr>
  35. </table>
  36. </center>
  37. </div>
  38.  
  39. </body>
  40.  
  41. </html>


a to plik kodowane.php (obsługujący formularz)

  1.  
  2. <meta http-equiv="Content-Language" content="pl">
  3. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  4. <title>Nowa strona 1</title>
  5. </head>
  6.  
  7.  
  8. <div align="center">
  9. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
  10. <tr>
  11. <td width="100%">
  12. <p align="center">
  13. <img border="0" src="logo.jpg" align="left" width="183" height="96"></td>
  14. </tr>
  15. </table>
  16. </center>
  17. </div>
  18. <div align="left">
  19. <table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="46%">
  20. <tr>
  21. <td width="100%">
  22. <form method="POST" action="kodowane.php">
  23. <p align="left"><input type="text" name="slowo" size="54"><input type="submit" value="Koduj" name="B1"><input type="reset" value="Resetuj" name="B2"></p>
  24. </form>
  25. </td>
  26. </tr>
  27. </table>
  28. </div>
  29. <hr>
  30. <p align="left"><i>
  31. <?php
  32. $slowo = $_POST[slowo];
  33. $zakodowane = md5($slowo);
  34. ?>
  35. <br>
  36. Wynik dla:</i>&nbsp;<b><? echo($slowo); ?></b> <br>
  37. <br>
  38. <b><font color="#000080">Twoje słowo to:</font></b><br>
  39. <br>
  40. &nbsp;
  41. <?php
  42. echo($zakodowane);
  43. ?>
  44. </p>
  45.  
  46. </body>
  47.  
  48. </html>


teraz proszę Was o pomoc. Jak mam zrobic dekoder o co chodzi?
pomożcie!
MStaniszczak
Md5 nie jest funkcją szyfrującą a haszującą (w związku z czym wynik jej działania jest jednokierunkowy). Tego co zostało przez nią przepuszczone nie da się odzyskać.
jarmiar
Cytat(MStaniszczak @ 20.11.2006, 19:59:53 ) *
Md5 nie jest funkcją szyfrującą a haszującą (w związku z czym wynik jej działania jest jednokierunkowy). Tego co zostało przez nią przepuszczone nie da się odzyskać.


no ale były takie dekodery onlie wpisywało sie ciąg znaków zakodowanych w md5, a potem on odgadywał cały wyraz.
to może mi powiesz jak to można wykonać?
MStaniszczak
Brute force? Ale uwaga –po "zdekodowaniu" ciągu md5 może się okazać że jest to ZUPEŁNIE inny wyraz ni ten który był kodowany (i jest to bardzo prawdopodobne)...
Ale może to Ci się przyda:
http://md5.rednoize.com/ ;-)
jarmiar
Cytat(MStaniszczak @ 20.11.2006, 20:22:28 ) *
Brute force? Ale uwaga –po "zdekodowaniu" ciągu md5 może się okazać że jest to ZUPEŁNIE inny wyraz ni ten który był kodowany (i jest to bardzo prawdopodobne)...
Ale może to Ci się przyda:
http://md5.rednoize.com/ ;-)


no ale jak to zrobić w php?
MStaniszczak
Poczytaj o tym czym jest metoda brute force (google sporo Ci na ten temat powie) to się sam zorientujesz i sam dojdziesz do wniosku że to bez sensu i zbyt kosztowne (czasowo).
siemakuba
Cytat(jarmiar @ 20.11.2006, 20:04:58 ) *
no ale były takie dekodery onlie wpisywało sie ciąg znaków zakodowanych w md5, a potem on odgadywał cały
Prawie masz rację. Prawie, bo nic tu nie było odgadywane. Takie systemy mają potężną bazę ciągów md5 i odpowiadających im ciągów znaków.

Krążył na tu na forum temat dotyczący md5 i pokrewnych - poszukaj, tam wszystko napisane zostało.
Aha, no i zapomnij o odkodowywaniu ciągu zahaszowanego md5 ;> Piszesz to w ramach zabawo-testo-doświadczeń czy jest to do czegoś konkretnego potrzebne? Jeżeli ta druga opcja, powiedz co potrzebujesz, z pewnością znajdzie się na to inny sposób ;>

pozdr.
php programmer
Myślę, że chodzi ci o inny rodzaj funkcji,
mianowicie szyfrowanie dwukierunkowe (symetryczne)

google -> DES
google -> FEAL
jarmiar
Cytat(siemakuba @ 21.11.2006, 12:12:30 ) *
Prawie masz rację. Prawie, bo nic tu nie było odgadywane. Takie systemy mają potężną bazę ciągów md5 i odpowiadających im ciągów znaków.

Krążył na tu na forum temat dotyczący md5 i pokrewnych - poszukaj, tam wszystko napisane zostało.
Aha, no i zapomnij o odkodowywaniu ciągu zahaszowanego md5 ;> Piszesz to w ramach zabawo-testo-doświadczeń czy jest to do czegoś konkretnego potrzebne? Jeżeli ta druga opcja, powiedz co potrzebujesz, z pewnością znajdzie się na to inny sposób ;>

pozdr.


mam hasło zakodowane w md5 i muszę je odkoować, a przy okazji chcę zrobić sobie taki koder/dekoder online dzięki czemu każdy będzie mógł sobie odkodować lub zakodować md5.
jeśli możesz napisz mi jak to zrobić
hwao
Robisz tak, wybierasz znaki i łączysz je na wszystkie możliwe sposoby. Wynik dajesz do md5 i zapisujesz w bazie danych string => hash. Potem jak ktoś wpisuje hash to szukasz czy masz w bazie danych taki, jak nie to klapa. Po prostu musisz mieć ich sporo.

Druga możliwość to robienie tego bez bazy danych, i szukanie string'u który daje taki hash
php programmer
a właściwie to po co chcesz odkodowywać md5 ?



Cytat
Robisz tak, wybierasz znaki i łączysz je na wszystkie możliwe sposoby. Wynik dajesz do md5 i zapisujesz w bazie

Cytat
Druga możliwość to robienie tego bez bazy danych, i szukanie string'u który daje taki hash


Złożonośc obliczeniowa tego = milion lat
hwao
MD5 nie da się rozkodować! MD5 jest HASHEM czyli klucz jest stracony!

Wiec nie da się DEKODOWAC i KODOWAĆ - gdyż md5 HASHUJE!.

http://pl.wikipedia.org/wiki/Funkcja_haszuj%C4%85ca

Gdyby się tak dało, i nie było by kolizji to wszystkie dane dało by się "zapisać" w ciągu składającym się z 32 znaków, teoretycznie gra mogła by zamiast 4gb zajmować parę bajtów.
jarmiar
powód napisałem wyżej

jak mówisz że się nie da to jak z bazy danych pobierana jest wartość zhaszowanego hasła a potem porównywana do ciągu string?
hwao
Baza 5 znakowa może Ci już zajmować parę GB.

Pisałem jak, robisz skrypt który takie coś tworzy:
Kod
a
...
z
aa
ab
ac
ad
...
zz
aaa
....

I tak wszystkie znaki, generalnie i tak się wybiera te najpopularniejsze [a-Z0-9] + podstawowe dostępne na klawiaturze.

I cały proces wygląda tak, jak już masz listę tych wszystkich wariacji to wrzucasz ciąg
md5( 'a' );
i wynik tego zapisujesz do bazy
a => "jakiś tam ciąg po md5()"
I tak robisz z każdym jakim masz.

Potem jak użytkownik wrzuca jakiś string, to szukasz w bazie danych PO HASH'U, i w ten sposób masz co tego hash'a tworzy.
php programmer
Cytat
jak mówisz że się nie da
to jak z bazy danych pobierana jest wartość zhaszowanego hasła
a potem porównywana do ciągu string?

hasło w bazie nigdy nie jest odkodowywane
dzięki temu nawet ktoś kto zajrzy do bazy nie wie jakie masz hasło

w bazie jest zapisany hash dla danego stringa,
jak ktoś kto sie loguje podaje napis, to ten napis jest haszowany
a to co wyjdzie jest porównywane z haszem zapisanymw bazie
jarmiar
no już teraz wiem.
zobaczcie na to co udało mii się zrobić:

http://webmaster.xk.pl/md5/

pozdro
kszychu
A co tam jest do oglądania? Wynik działania jednej funkcji?
Cysiaczek
@jarmiar - a po co to komu? Bez obrazy, ale użyteczność... żadna : |
Jeszcze ten wieeeelki plik z napisem MD5 - mógłby ważyć 10-15 razy mniej...

Pozdrawiam.
php programmer
No i wogóle nie wiem dlaczego nazwałes to "dekoder"

przecież nieczego tu nie dekodujesz,
jarmiar
taki odruch.
hwao
Cytat
Wynik dla: 098f6bcd4621d373cade4e832627b4f6

Twoje słowo to:

fb469d7ef430b0baf0cab6c436e70375


Czemu to nazwałeś dekoderem? Eh, nie wiem jak Ci to wytłumaczyć ...

Powiedzmy masz dekorder tv trwam , oglądasz sobie dzięki niemu jakieś tam programy (jak jesteś na odpowiedniej częstotliwości). Teraz spróbuj przy pomocy tego samego dekodera od kodować jakąś częstotliwość na której jest szum (takie czarno-szaro-białe kropki)...
jarmiar
wiem że to nie jest dekoder jakoś mi się tak napisało z zagapienia się.
thornag
Mozna jeszcze ba to rzucic okiem:

Teoria

Przyklad
jarmiar
i o co z tym chodzi? sprecyzuj mi to .
thornag
Przeciez wszystko tam jest napisane, wystarczy poczytac. Jak uzyjesz googla napewno znajdzies zjeszcze wiecej informacji o metodzie TeczowychTablic, co do sprecyzowania to jak napisali, zamist przechowywac hashe w calosci, mozna przechowywac ich lancuchy (napewno jakos to oparte jest na kolizjach) przez co baza hashy jest mniejsza a czas potrzebny na zlamania hasla niepowronywalnie krotszy niz w przypadku BF. reszte sam doczytasz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.