Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Szyfrowanie MD5
kamil1114
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 22.02.2008
Skąd: katowice

Ostrzeżenie: (0%)
-----


Co mi daje szyfrowanie MD5 ? Jest jakaś funkcja do zaszyfrowania jakiegoś napisu ?
Go to the top of the page
+Quote Post
flashdev
post
Post #2





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Po pierwsze MD5 nie jest algorytmem szyfrującym, tylko mieszajacym.
Co do drugiego pytania zobacz -> base64
Go to the top of the page
+Quote Post
zulus
post
Post #3





Grupa: Zarejestrowani
Postów: 225
Pomógł: 18
Dołączył: 30.06.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


To nie jest szyfrowanie, tylko hashowanie (md5 często używane jest jako suma kontrolna pliku). Funkcja to md5(), a co daje? Hmmm często używa się aby zapisać w bazie danych wersje md5 hasła (zapewnia bezpieczeństwo haseł w razie przechwycenia bazy).
Go to the top of the page
+Quote Post
WebKing
post
Post #4





Grupa: Zarejestrowani
Postów: 219
Pomógł: 16
Dołączył: 16.07.2007

Ostrzeżenie: (0%)
-----


Funkcja md5" title="Zobacz w manualu PHP" target="_manual daje możliwość zabezpieczenia hasła np. w bazie danych, jeżeli chcesz zakodować tekst to masz skrypt:
  1. <?php
  2. $tekst = "Twój tekst";
  3. echo md5($tekst);
  4. ?>
Go to the top of the page
+Quote Post
kamil1114
post
Post #5





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 22.02.2008
Skąd: katowice

Ostrzeżenie: (0%)
-----


Ok , dziękuje za odpowiedzi. Wszyscy dostali Pomógł. Czemu jak ten tekst zahashuje to takie coś mi się wyświetla: 090cf7206d54d8d9381124a362ef57b7 ?

A jest jakaś funkcja która rozkodowuje zahashowany tekst ?

Ten post edytował kamil1114 8.01.2009, 17:29:59
Go to the top of the page
+Quote Post
WebKing
post
Post #6





Grupa: Zarejestrowani
Postów: 219
Pomógł: 16
Dołączył: 16.07.2007

Ostrzeżenie: (0%)
-----


md5 nie ale base64 tak funkcja base64_decode" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
phpion
post
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(kamil1114 @ 8.01.2009, 19:28:01 ) *
A jest jakaś funkcja która rozkodowuje zahashowany tekst ?

Nie ma. Możesz jedynie zastosować metodę brute force czyli generować kolejne ciągi (np. a, b..., aa, ab...) i porównywać ich md5 z tym, który już masz. Nie uzyskasz jednak w ten sposób ciągu pierwotnego (chyba, że będziesz miał szczęście (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) a jedynie inny ciąg posiadający taki sam hash md5.
Go to the top of the page
+Quote Post
kamil1114
post
Post #8





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 22.02.2008
Skąd: katowice

Ostrzeżenie: (0%)
-----


Czemu jak ten tekst zahashuje to takie coś mi się wyświetla: 090cf7206d54d8d9381124a362ef57b7 ? To mi coś daje ?
Go to the top of the page
+Quote Post
WebKing
post
Post #9





Grupa: Zarejestrowani
Postów: 219
Pomógł: 16
Dołączył: 16.07.2007

Ostrzeżenie: (0%)
-----


Kodowanie md5 jest nieodwracalne przy pomocy tej funkcji możesz porównać dane wysłane ($_POST) z md5($haslo)
Go to the top of the page
+Quote Post
sowiq
post
Post #10





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(kamil1114 @ 8.01.2009, 17:37:33 ) *
Czemu jak ten tekst zahashuje to takie coś mi się wyświetla: 090cf7206d54d8d9381124a362ef57b7 ? To mi coś daje ?
Nie, nie daje Ci niczego, poza tym, że nie możesz tego odwrócić. Tzn. nie otrzymasz dzięki znajomości wyniku - ciągu wejściowego.

Dzięki temu możesz zapisywać hasła w bazie danych 'zakodowane' funkcją md5. Jeśli ktoś przechwyci Twoją bazę to nie odczyta haseł, bo będzie znał jedynie hash'e. Tobie (np. podczas logowania) będzie potrzebna tylko informacja, czy md5($wpisane_haslo) = $md5_zapisane_w_bazie.

Jeśli masz jeszcze jakieś pytania, to poczytaj w necie. Pełno jest artykułów na ten temat. Poczytaj też o kolizjach i sposobach 'łamania' md5.
Go to the top of the page
+Quote Post
kamil1114
post
Post #11





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 22.02.2008
Skąd: katowice

Ostrzeżenie: (0%)
-----


Ok , dziękuje. A w takim przypadku jest sens wykorzystywać md5:
Kod
<html>
<head>
</head>
<body>

<form method="POST">
Podaj login: </br>
<input type="text" name="login"></br>
Podaj haslo: </br>
<input type="password" name="haslo"></br>
<input type="submit" name="wyslane" value="Wyslij"></br>
<input type="reset" value="Wyczysc">
</form>
<?php

$wyslane=$_POST['wyslane'];
if(isset($wyslane)){
$login=$_POST['login'];
$haslo=$_POST['haslo'];

$id=md5("login");
$hash=md5("haslo");

if($login===$id && $haslo===$hash){

echo "zalogowane";

}
else echo "Złe dane";

}
else echo "Wypełnij pola";

?>
</body>
</html>


czy tylko przy bazach ? To mi nie działa.

Ten post edytował kamil1114 8.01.2009, 18:14:46
Go to the top of the page
+Quote Post
flashdev
post
Post #12





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Jeżeli zakładasz możliwość przechwycenia danych w drodze do serwera, to takie rozwiązanie może zabezpieczyć dane (login i hasło) przed ich uzyskaniem. Przy czym nie zabezpieczy, Cie przed zalogowaniem osoby, która je przechwyciła.
Ja nie widze większego sensu stosowania takiego rozwiazania.

Ten post edytował flashdev 8.01.2009, 18:18:35
Go to the top of the page
+Quote Post
kamil1114
post
Post #13





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 22.02.2008
Skąd: katowice

Ostrzeżenie: (0%)
-----


Ok , dziękuje wszystkim za pomoc
Go to the top of the page
+Quote Post
Rafal Filipek
post
Post #14





Grupa: Zarejestrowani
Postów: 274
Pomógł: 54
Dołączył: 2.05.2006
Skąd: Nadarzyn

Ostrzeżenie: (0%)
-----


w twoim skrypcie musisz jeszcze zamienic
Kod
$login=$_POST['login'];
$haslo=$_POST['haslo'];

na

$login=md5($_POST['login']);
$haslo=md5($_POST['haslo']);
Go to the top of the page
+Quote Post
kamil4u
post
Post #15





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

Ostrzeżenie: (0%)
-----


Ja jeszcze dodam: md5 jest niczym, gdy hasło jest po prostu słabe. Jak określa się siłę hasła? ilość znaków, stosowanie dużych i małych liter, stosowanie cyfr, nie używanie wyrazów słownikowych i inne mniej ważne - są bazy danych, w których zapisane są wyrazy słownikowe w md5 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
sowiq
post
Post #16





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(kamil4u @ 8.01.2009, 20:38:34 ) *
Ja jeszcze dodam: md5 jest niczym, gdy hasło jest po prostu słabe.
Oczywiście wiesz, że nawet jak Twoje hasło ma 100 znaków, to jest spore prawdopodobieństwo kolizji krótszego hasła. Tzn. hasło 4-znakowe może mieć taki sam hash jak Twoje 100-znakowe i nijak tego nie sprawdzisz, bo porównujesz tylko wyniki działania funkcji md5().

A więc Twoje rozumowanie nie do końca jest słuszne. Chociaż oczywiście nie polecam nikomu ustawiania 4-znakowych haseł (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
flashdev
post
Post #17





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(sowiq @ 8.01.2009, 23:09:45 ) *
Oczywiście wiesz, że nawet jak Twoje hasło ma 100 znaków, to jest spore prawdopodobieństwo kolizji krótszego hasła. Tzn. hasło 4-znakowe może mieć taki sam hash jak Twoje 100-znakowe i nijak tego nie sprawdzisz, bo porównujesz tylko wyniki działania funkcji md5().


36^32 = 63340286662973277706162286946811886609896461828096

Bądźmy realistami, prawdopodobieństwo, że ktoś przypadkowo trafi na to hasło jest mniejsze niz wygranie w totolotka kilka razy pod rząd.
Nawet jeśli masz superkomputer i bruteforcem przeliczysz choćby nawet 10^20 (w co wątpię) kombinacji to i tak pozostaje kosmiczna ilość.
Pewnie to się zmieni, kiedy powstaną komputery kwantowe, ale to juz inna bajka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
sowiq
post
Post #18





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(flashdev @ 9.01.2009, 00:03:30 ) *
36^32 = 63340286662973277706162286946811886609896461828096
Pudło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Skrót składa się z wartości hexadecymalnych, więc nie 32^32, a 16^32. To daje różnicę 29 rzędów wartości (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ale co do prawdopodobieństwa to oczywiście masz rację. Jednak wykluczyć się tego nie da, dlatego bezpieczniej stosować sha1() (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował sowiq 9.01.2009, 02:25:12
Go to the top of the page
+Quote Post
erix
post
Post #19





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jedno i drugie można złamać. Serwisów do odwracania haseł jest mnóstwo, poza tym - ophcrack (na tęczowych tablicach) i jeśli nie wprowadzi limitu błędnych logowań, to prędzej czy później ktoś się wbije na konto.
Go to the top of the page
+Quote Post
sowiq
post
Post #20





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(erix @ 9.01.2009, 21:12:55 ) *
Serwisów do odwracania haseł jest mnóstwo
Chyba raczej do szukania ciągu wejściowego/kolizji. md5/sha1 nie da się odwrócić.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.09.2025 - 14:25