Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]hasło generowanie
dave666
post 14.07.2019, 14:22:25
Post #1





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 1.04.2008

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


Witam czy ktoś mógłby mi wytłumaczyć w jaki sposób jest tu pobierane hasło

  1. $prawie = md5($_POST['pass']);
  2. $pass = md5($prawie.'1m&3S');
  3. if ($old[0] == $pass) {
  4. $_SESSION['admin'] = 'ok';
  5. } else {
  6. echo"<center><font color='red'>Niepoprawne haslo sproboj ponownie</font>";
  7. }


chce się dowiedzieć co ta linijka robi
  1. $pass = md5($prawie.'1m&3S');
Go to the top of the page
+Quote Post
dublinka
post 14.07.2019, 14:31:11
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 24
Dołączył: 22.02.2008

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


To po kropce to tzw "sól" dodaje sie to do zwiekszenia bezpieczenstwa choc juz dawno md5() przestalo byc bezpieczne i powinno sie stosowac chocby password_hash().
Sól to tylko tobie znany coag znakow. Mozna dodac to np na poczatku lub koncu hasla.

Ten post edytował dublinka 14.07.2019, 14:32:32
Go to the top of the page
+Quote Post
dave666
post 14.07.2019, 14:36:41
Post #3





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 1.04.2008

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


Czyli najpierw jest generowane hasło w md5 a później jest dodawana ta sól i jeszcze raz generowana i jest właściwe hasło ?

Jedak nie czy możesz mi to wytłumaczyć ? będę wdzięczny


trochę pokombinowałem i nie wiem czy dobrze myślę

  1. <?php
  2. $has = "1234";
  3. $prawie = md5($has);
  4. $pass = md5($prawie.'1m&3S');
  5. echo $pass;


Czyli najpierw $has jest zamieniany na md5 to po kropce zamieniane tez na md5 i dopiero łączone czy źle rozumiem

Ten post edytował dave666 14.07.2019, 15:01:13
Go to the top of the page
+Quote Post
viking
post 14.07.2019, 15:14:40
Post #4





Grupa: Zarejestrowani
Postów: 5 279
Pomógł: 889
Dołączył: 30.08.2006

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


Nie. Do pierwotnego ciągu coś doklejasz. Natomiast jeszcze raz. Md5 od dawna się nie używa i nie ma sensu się przy tym upierać. Użyj co najmniej bcrypt.


--------------------
Go to the top of the page
+Quote Post
dublinka
post 15.07.2019, 07:41:53
Post #5





Grupa: Zarejestrowani
Postów: 200
Pomógł: 24
Dołączył: 22.02.2008

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


Cytat(dave666 @ 14.07.2019, 14:36:41 ) *
Czyli najpierw jest generowane hasło w md5 a później jest dodawana ta sól i jeszcze raz generowana i jest właściwe hasło ?

Jedak nie czy możesz mi to wytłumaczyć ? będę wdzięczny


trochę pokombinowałem i nie wiem czy dobrze myślę

  1. <?php
  2. $has = "1234";
  3. $prawie = md5($has);
  4. $pass = md5($prawie.'1m&3S');
  5. echo $pass;


Czyli najpierw $has jest zamieniany na md5 to po kropce zamieniane tez na md5 i dopiero łączone czy źle rozumiem

W tamtym przykladzie (w tym tez) jest przekombinowane bo 2x haslo jest mieszane.
Najpierw haslo jest mieszane a potem znowu mieszane ( to juz zamieszane za pierwszym razem) z solą.


Możesz zrobić np tak:

  1. <?php
  2. $logins = array(
  3. 'user' => array('hash' => 'ae092...', 'salt' => 'a7#(ad~I$...'),
  4. );
  5.  
  6.  
  7. $user = strtolower(trim($_POST['user']));
  8. $pass = $_POST['password'];
  9.  
  10. if(isset($logins[$user]) && crypt($logins[$user]['salt'].$pass, 'SHA-256') == $logins[$user]['hash']) {
  11. // login poprawny
  12. } else {
  13.  
  14. exit('blad');
  15.  
  16. }
  17.  
Go to the top of the page
+Quote Post
Pyton_000
post 15.07.2019, 09:41:15
Post #6





Grupa: Zarejestrowani
Postów: 7 799
Pomógł: 1373
Dołączył: 26.10.2005

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


Nie używamy crypt() do haseł tylko password_hash()
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 21.08.2019 - 19:46