![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
chcialem zakodowac plik tekstowy z haslami a pozniej przy odczycie go zdekodowac. Poniewaz nie umiem oblugiwac md5() ani innych takich, a ze potrzebuje prosciutkiego kodowania (chodzi o to by na pierwszy rzut oka pomyslec ze to jest zakodowane i juz zostawic w spokoju) chcialem napisac skrypt do kod i dekod przy uzyciu preg_replace. Ale kompletnie to mi nie wychodzi, tzn powstaja caly czas jakies problemy, a to zaszyfruje dobrze i nie odszyfruje a to odwrotnie i takie rozne. na koncu dolaczam listing programu, ale jakby ktos mial jakies inne pomysly wraz z przykladami to bardzo bym chetnie wysluchal (przeczytal)
[php:1:7245c17ea0]<?php $plik=fopen("tekst.txt","r"); //$plik2=fopen("szyfr.txt","w"); $maska[0]="/1/"; $maska[1]="/2/"; $maska[2]="/3/"; $maska[3]="/4/"; $maska[4]="/5/"; $maska[5]="/6/"; $maska[6]="/7/"; $maska[7]="/8/"; $maska[8]="/9/"; $maska[9]="/a/"; $maska[10]="/b/"; $maska[11]="/c/"; $maska[12]="/d/"; $maska[13]="/e/"; $maska[14]="/f/"; $maska[15]="/g/"; $maska[16]="/h/"; $maska[17]="/i/"; $maska[18]="/j/"; $maska[19]="/k/"; $maska[20]="/l/"; $maska[21]="/m/"; $maska[22]="/n/"; $maska[23]="/o/"; $maska[24]="/p/"; $zmien[24]="a"; $zmien[23]="b"; $zmien[22]="c"; $zmien[21]="d"; $zmien[20]="e"; $zmien[19]="f"; $zmien[18]="g"; $zmien[17]="h"; $zmien[16]="i"; $zmien[15]="j"; $zmien[14]="k"; $zmien[13]="l"; $zmien[12]="m"; $zmien[11]="n"; $zmien[10]="o"; $zmien[9]="p"; $zmien[8]="q"; $zmien[7]="r"; $zmien[6]="s"; $zmien[5]="t"; $zmien[4]="u"; $zmien[3]="w"; $zmien[2]="y"; $zmien[1]="x"; $zmien[0]="z"; while(!(feof($plik))){ $dane=fgets($plik); print("$dane<br>"); $kod=preg_replace($maska,$zmien,$dane); print("$kod<br>"); //fputs($plik2, "$kod"); } //fclose($plik2); fclose($plik); ?>[/php:1:7245c17ea0] |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
[php:1:a5c4d63002]<?php
$niezakodowane = "costam"; $zakodowane = md5($niezakodowane); ?>[/php:1:a5c4d63002]Po co kombinujesz? -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 166 Pomógł: 0 Dołączył: 30.01.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jak chcesz miec mozliwosc zakodowania i odkodowania to użyj funkcji base64_encode() i base64_decode()
[php:1:ee9b07c7df]<?php $tekst="Jakis tekst do zakodowania"; //kodowanie $zakodowany=base64_encode($tekst); echo("$zakodowany"); //rozkodowanie $rozkodowany=base64_decode($zakodowany); echo("$rozkodowany"); ?>[/php:1:ee9b07c7df] |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
dzieks za odpowiedz
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
hasła powinno się kodowac jednostronnie, algorytmem uniemożliwiającym dekrypcję. Takim jak np. [manual:bf6751b7cb]md5()[/manual:bf6751b7cb].
-------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
jokergti: nawet jak ktoś zobaczy hasła zakodowane przez md5, to może nie popuścić. Ja bym sobie przyjemności dekodowania nie odpuścił
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat jokergti: nawet jak ktoś zobaczy hasła zakodowane przez md5, to może nie popuścić. Ja bym sobie przyjemności dekodowania nie odpuścił
![]() Życzę powodzenia. Jak Ci się uda, to powiadom nas - o ile to forum za kilka lat będzie jeszcze istneć. Zdekoduj mi np. to: 5ab5d99f2bc796a8fda074e7587979bc - i powiedz gdzie mieszkam i w jakim powiecie. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Tak?? To prosze bardzo... odkoduj MD5. Sława gwarantowana.. Tymczasem, do uslyszenia za 1000 lat
![]() spenalzo: we Wrześni? ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat spenalzo: we Wrześni? :D
Nie :-P - chodzi mi o dokładną nazwę miejscowości. (powiat już mu zdradziłeś :-), więc musze zmienić) W poniższym ciągu masz mój dokładny adres. Wyślij mi kartkę (lub raczej moim prapraprawnukom) jak odkodujesz. Kod 96c3550c6a8e329010909813005fe5a6
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
I tu błąd, w tym kodzie nie ma Twojego adresu...
MD5 tak nie dziala. To jest stratne szyfrowanie (dlatego jednostronne) i nie da sie tego odwrocic. Przeciez 500MB plik tez ma swoj hash MD5, a chyba nikt nie sadzi, ze z 32 bajtow da sie odtworzyc caly plik ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat MD5 tak nie dziala. To jest stratne szyfrowanie (dlatego jednostronne) i nie da sie tego odwrocic.
Ja wiem. Ale można do tego dojść inaczej, np. przez porównywanie różnych ciągów. -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ja wiem. Ale można do tego dojść inaczej, np. przez porównywanie różnych ciągów.
Może jak w końcu kosmici u nas wylądują to nam pomogą... będzie szybciej niż za 1000 lat :wink: -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Może jak w końcu kosmici u nas wylądują to nam pomogą... będzie szybciej niż za 1000 lat :wink:
Dlatego napisałem mu, że jak znajdzie adres, to niech moim praprapraprapraprawnukom kartkę wyśle. ![]() -------------------- |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
hmm
Ale na mnie najechaliscie. Już wyjasniam o co mi chodzilo. Są ludzie, którzy ustawiają sobie krótkie hasła - 4,5 liter Zrobiłem sobie kiedyś słowniczek(dosc duzo zajmuje) zahasowanych haseł od a do zzzzz, na wiecej mi nerwow nie starczylo. I 5-literowe zahashowane hasła(z samych liter) to sobie moge spokojnie odczytac. Dajmy na to że w takim pliczku są zapisane hasła 300 userów, to duze prawdopodobienstwo, ze komus haselko zlamie. Waszych adresików nie połamie, chce tylko autorowi tematu uświadomić że trzymanie w zwykłym pliku to nie jest dobre rozwiązanie. A wy mnie jak ostatnia lame potraktowaliscie ![]() Przeciez mam racje |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Metodą brutalForce można oczywiście złąmać każde hasło. Tj. nie tyle znaleźć to hasło, jak raczej znaleść ciąg, który posiada taki sam hash. Ale przy kombinacji 32 znaków (tyle ma md5) jestto i tak na tyle duża liczba, że ...
-------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale przy kombinacji 32 znaków (tyle ma md5) jestto i tak na tyle duża liczba, że ...
Ale dla 3,4,5, nawet 6 znakow to jest mozliwe nawet na zwyklym pc'cie, nie trzeba do tego jakiejs super machiny. Liczylem kiedys ile zajmie slownik dla 32-znakowego ciagu skladajacego sie z cyfr i liter(malych i duzych). Wyszlo mi ze nierealne jest wygenerowanie takiego slownika(za duzo zajmuje: cos rzedu 10^48 GB - moglem sie pomylic w obliczeniach). |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale przy kombinacji 32 znaków (tyle ma md5) jestto i tak na tyle duża liczba, że ...
MD5 zwraca małe litery, których jest 25. Miesza to razem z 10 cyframi. Razem mamy 35 możliwych kombinacji na jedną pozycję. Pozycji jest 32 - więc policz sobie ile to jest. Czyli tutaj się kłania matematyka (o ile nic nie popieprzyłem) - korzystając z pojęcia wariacji z powtórzeniami (ponieważ kolejność jest istotna i elementy mogą się powtarzać) więc mamy: 35^32 możliwych kombinacji ciągów, czyli mamy około 25 714 460 626 335 800 000 000 000 000 000 000 000 000 000 000 000 możliwych kombinacji. -------------------- |
|
|
![]()
Post
#18
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Dla 32 znaków przy założeniu 48 (duze i male) liter i 10 cyfr to jest jakies 58^32 co wg kalkulatora windowsowego daje liczbe o 57 cyfrach, wiec faktycznie troche za duzo. A jakby jeszcze policzyc ze chcesz wszystkie ciagi o dlugosci od 4 do 32 znakow to juz nawet liczyc mi sie nie chce
![]() |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ale wydaje mis ię że MD5 daje tylko małe litery...
-------------------- |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
porownaj stringi;
print md5('dchcorp') . '<br>' . md5('DCHCORP'); nie testowalem, ale wydaje mi sie ze bedzie roznica. Jednak sie da odczytac hasla zahashowane md5... A tak negatywnie byliscie nastawieni do mojego 1-go posta w tym topicu. ![]() |
|
|
![]()
Post
#21
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat porownaj stringi;
print md5('dchcorp') . '<br>' . md5('DCHCORP'); nie testowalem, ale wydaje mi sie ze bedzie roznica. Trochę nieprecyzyjnie napisałem - chodziło, że md5 zwraca tylko małe litery. Cytat Jednak sie da odczytac hasla zahashowane md5...
Mhm, jasne. Odczytać się NIE DA, chyba, że ZGADNĄĆ metodą słownikową czy losowym podstawianiem ciągów. Ale to nie jest odczytanie. Ale jeżeli nadal twierdzisz, że możesz odczytać mój adres (96c3550c6a8e329010909813005fe5a6) to wyślij mi kartkę - na mój koszt. -------------------- |
|
|
![]()
Post
#22
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale wydaje mis ię że MD5 daje tylko małe litery...
Tak, ale jemu chodzilo o zrobienie slownika 32 znakowego do testowania brute force. Cytat porownaj stringi;
print md5('dchcorp') . '<br>' . md5('DCHCORP'); nie testowalem, ale wydaje mi sie ze bedzie roznica. Oczywiscie, ze bedzie i to spora, w zasadzie zwrocone stringi beda zupelnie inne. Nawet jedna literka inna powoduje duze roznice. Cytat Jednak sie da odczytac hasla zahashowane md5...
A tak negatywnie byliscie nastawieni do mojego 1-go posta w tym topicu. No wiesz ... metodą brute force to kazdy szyfr da sie odszyfrowac w teorii. Ale na tym to polega, ze jest to praktycznie niemozliwe, bo wymaga za duzo czasu. |
|
|
![]()
Post
#23
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ech, co ja chrzanię?
Przecież porównuje się wynik kodowania w md5 z jakimś ciągiem... -------------------- |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 17.03.2003 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale jeżeli nadal twierdzisz, że możesz odczytać mój adres (96c3550c6a8e329010909813005fe5a6) to wyślij mi kartkę - na mój koszt.
Ty chyba chcesz zebym wyladowal w psychatryku ![]() Moge za pomoca mojego slowniczka odczytac krotke hasla, ale zawsze to cos i metoda hashowania md5 nie jest calkowicie bezpieczna, a tym bardzej przechowywane hashow hasel w plku tekstowym, do ktorego teoretycznie kazdy ma dostep, jak to chcial zrobic autor topicu -- Pozdrawiam |
|
|
![]()
Post
#25
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Teraz tak całkiem OT.
Npisałem sobie najprostszy skrypt: [php:1:4110df18b0]<?php set_time_limit(0); $time=time(); function uid($l) { $pool="abcdefghijklmnoprsqtuvxyz"; $pool.="ABCDEFGHIJKLMNOPRSTUVXYZ"; $pool.="1234567890"; // losowanie z tych znaków for($i=0; $i<$l; $i++) { $s.=substr($pool,(rand()%(strlen($pool))),1); } return($s); } $txt=md5("dupa"); // tekst $i=0; while(1) { $i++; $ciag=uid(rand(1,4)); // ilość losowanych znaków if(md5($ciag)==$txt) { echo "<br><b>Odkodowano w ".$i." próbie w czasie ".(time()-$time)." sekund. </b><br>"; flush(); die(); } else { if(!($i%50000)) { echo $i." prób bez rezultatu po czasie ".(time()-$time)." sekund.<br>"; flush(); } } $file=@fopen("proby.txt","a"); @fwrite($file,$ciag."n"); @fclose($file); } ?>[/php:1:4110df18b0] i oto jakie mam wyniki: Tekst: dupa Losowanie ze znaków: tylko małe litery Ilość losowanych znaków: 4 (sztywno określone) Czas odgadnięcia tekstu: 59 sekund Liczba prób: 429 768 Plik wynikowy: 2,45 MB Tekst: dupa Losowanie ze znaków: tylko małe litery Ilość losowanych znaków: 1-4 Czas odgadnięcia tekstu: 149 sekund Liczba prób: 1 631 407 Plik wynikowy: - MB Tekst: dupa Losowanie ze znaków: tylko małe i duże litery Ilość losowanych znaków: 1-4 Czas odgadnięcia tekstu: 823 sekund Liczba prób: 8 339 097 Plik wynikowy: 65,3 MB (nieukończone) Tekst: spenalzo Losowanie ze znaków: małe i duże litery + cyfry 0-9 Ilość losowanych znaków: 1-16 Czas odgadnięcia tekstu: 5149 sekund Liczba prób : 45 300 000 Plik wynikowy: 522 MB Wszystkie litery bez polskich znaków. Athlon XP 2200+, 512 RAM, Apache 2.0.39, php 4.2.2 A może macie jakieś inne pomysły na skrypt - ten jest bardzo primitywny. PS. Uprzedzam pytania: tak, lekko się nudzę :-) -------------------- |
|
|
![]()
Post
#26
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
No, mam nadzieję że powyższym postem uświadomiłem co niektórym że odkodowanie MD5 przy obecnych komputerach nie jest raczej możliwe.
-------------------------- Małe sprostowanie - złamianie - nie odkodowanie ![]() -------------------- |
|
|
![]()
Post
#27
|
|
![]() Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: -- Skąd: Wired Ostrzeżenie: (0%) ![]() ![]() |
da sie da. nawet przy dzisiejszych kompach.
byl kieedys program w jakiejs telewizji i angole z jakiejstam agencji mowili, ze owszem - mozna to zlamac bruteforce, podawali jakiestam czasy. ba - bylo tez o lamaniu PGP. otoz np. przy pgp szyfrowanie musi byc dziurawe - inaczej rzad nie dopuscilby do uzytku programu, ktorego nie moze odszyfrowac. bylo tez o szyfrowaniu jakistam plikow. mowili, ze haslo do archiwum mozna zlamac w kilka sekund, lecz metoda udostepniona na rynku, skonstuowana jest specjalnie, aby zlamanie hasla do archiwum trwalo o wiele dluzej. nie pamietam co to byl za program, nie pamietam na jakiej telewizji, nie pamietam w jakim jezyku, ale pamietam, ze takowy byl. a tak wogole, to metoda w php jest... troche... wolna. niemniej jednak zlamanie md5, pomimo mozliwosci jest cholernie czasochlonne. |
|
|
![]()
Post
#28
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Suma sumarum
Md5 złąmać można (choć komu by sie chciało) ale Md5 ODKODOWAĆ NIE MOŻNA. pozdrowienia dla wszystkich niedowiarków. PA -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#29
|
|
![]() Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: -- Skąd: Wired Ostrzeżenie: (0%) ![]() ![]() |
mozna zawsze napisac programik podobny do Seti@HOME i wykorzystac kilku userow do zlamania hasel w md5
![]() |
|
|
![]()
Post
#30
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ale wydaje mi się że MD5 daje tylko małe litery...
Dla ścisłości: funkcja md5 zwraca liczbę 128-bitową, a nie małe litery. Można ten wynik zapisać jako sekwencję 32 cyfr szesnastkowych (chyba o to Ci chodzilo) i wtedy na każdej z pozycji jest cyfra dziesiętna albo litera od A do F (wielkość nie ma znaczenia). Niemniej nie zmienia to faktu, że ilość możliwych wartości tej funkcji jest 2^128 czyli ok. 10^38. Przeszukanie takiej przestrzeni wyników faktycznie przekracza jeszcze możliwości współczesnych komputerów. |
|
|
![]()
Post
#31
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
ja mam pytabie jeszcze odnosnie tego md5, jak zakodowac plik wiem, ale jak pozniej go zdekodowac, tzn gdzie jest klucz do tego szyfru, jak wyglada procedura odkodowania danych, bo raczej niepotzrebuje zakodowanego pliku z haslami tak ze pozniej nie moge ich odczytac
|
|
|
![]()
Post
#32
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat ja mam pytabie jeszcze odnosnie tego md5, jak zakodowac plik wiem, ale jak pozniej go zdekodowac, tzn gdzie jest klucz do tego szyfru, jak wyglada procedura odkodowania danych, bo raczej niepotzrebuje zakodowanego pliku z haslami tak ze pozniej nie moge ich odczytac
Ehh... Proszę pan jokergti żeby przeczytał dokładnie (słowo w słowo) cały wątek. A co do umieszczania zakodowanych haseł w pliku, proszę wpisać w wyszukiwarce md5 i czytać. EOT. -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 22:29 |