Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak wysłać wartość aktualną z pola w bazie do funkcji php w zapytaniu MySQL z poziomu PHP?
armon
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 24.09.2009

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


Jak wysłać wartość aktualną z pola w bazie do funkcji php w zapytaniu MySQL z poziomu PHP?

Chodzi mi o coś takiego:
  1. $query = "
  2. UPDATE klienci1 SET haslo = hash(sha512,haslo)
  3. ";
  4.  
  5. mysql_query($query);


Oczywiście to jest źle. Da się tak w ogóle zrobić?

Chcę aktualizować wszystkie hasła z md5 do sha512.

Mógłbym pobrać wszystkie wartości, a następnie wykonać aktualizację, ale ciekawi mnie czy mogę to zrobić w jednym query przy pomocy UPDATE?

Ten post edytował armon 30.09.2011, 10:08:17
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
md5 jest podatne na kolizje, więc korzystając z tej linii zabezpieczę się przed kolizjami oraz nie będę musiał wymagać od userów aktualizacji hasła
Proszę, przeczytaj cały temat, do którego dałem ci linka, i nie gadaj głupot.

Jedyny sens tej zamiany to jest ten, który napisałem
Cytat
Choć w przypadku, gdy masz dane już w md5, to może i w pewien sposób zwiększasz, bo na md5 już jest tyle masa tęczowych tablic, ze w zasadzie każde hasło w md5 jest jawne

A robiąc kolejne hashy z hashy to tylko zwiększasz kolizje
Powód edycji: [nospor]:
Go to the top of the page
+Quote Post
armon
post
Post #3





Grupa: Zarejestrowani
Postów: 66
Pomógł: 1
Dołączył: 24.09.2009

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


Cytat(nospor @ 30.09.2011, 11:27:10 ) *
Proszę, przeczytaj cały temat, do którego dałem ci linka, i nie gadaj głupot.

Jedyny sens tej zamiany to jest ten, który napisałem

A robiąc kolejne hashy z hashy to tylko zwiększasz kolizje



"Hashing SHA-256 over and over does not increase the chance of collisions AFAIK (as is the case with MD5), this is from what I’ve read and tests I’ve done myself. The added security comes from the time it takes to generate the hash, the same way Bcrypt does (you could of course just use Bcrypt but it’s not always available on shared hosts). Eating up server resources is a feature in this case."
"

To jedna rzecz, jednak ja nie mam zamiaru hashować md5 ponownie z 10 razy, tylko wykonać raz ponowne hashowanie na md5 przy pomocy sha512, aby w bazie były przechowywane hasła na 128 bitach nie na 32 oraz ostateczny algorytm szyfrujący nie był podatny na kolizje.

Przez co zabezpieczam się przed rainbow tables (niektórymi, bo jeszcze nie dodałem salta, ale też dodam), kolizjami.

Wystarczy zmienić później przykładowo:
  1. $pw = md5($pw_send_from_input);
  2. SELECT * FROM users WHERE pw = '{$pw}'

na
  1. $pw = hash('sha512',md5($pw_send_from_input));
  2. SELECT * FROM users WHERE pw = '{$pw}'


Oczywiście nie zapominając o salcie i innych sprawach i po problemie?

Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 08:31