![]() |
![]() |
![]()
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. ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 16:02 |