[TUT] Jak bezproblemowo zmienić kodowanie Hasła | Z4Y.pl Zone4You - Strefa dla Ciebie

Panel

Zarejestruj

Zawartość

Forum
Programowanie i Webmastering
Gotowe rozwiązania
[TUT] Jak bezproblemowo zmienić kodowanie Hasła

Zgłoś post

Powód zgłoszenia: 

Zgłoszenie zostało wysłane pomyślnie!

Dziękujemy za pomoc w utrzymywaniu porządku na forum.

Postaramy się jak najszybciej zrealizować twoje zgłoszenie.



[TUT] Jak bezproblemowo zmienić kodowanie Hasła

Temat rozpoczęty przez Xer,

Avatar użytkownika Xer Xer Administrator Posty: 3491
Witam!

Wiele osób często musi wykonać na swojej witrynie operację taką jak "zmianę kodowania haseł" z np. md5 na sha1.

Dla takich osób jest to bardzo problematyczna jak i dla użytkowników operacja, gdyż zazwyczaj stosowane są wyjścia z tej sytuacji takie jak:

- Zmuszenie użytkownika do wygenerowania nowego hasła
- Skasowanie użytkownikom kont

W tym tutorialu zamierzam opisać jak bezproblemowo wyjść z tej sytuacji, aby żaden użytkownik nawet nie poczuł że coś się stało.

No więc do dzieła:

Załóżmy że mamy w tabeli kolumnę z hasłem o nazwie: "password", i zawarte w niej są hasła w kodowaniu "PASSWORD" (liczące 41 znaków) i chcemy zmienić kodowanie haseł na sha1 (liczące 40 znaków)

Więc robimy tak:
- Na czas operacji wyłączamy naszą stronę dla innych użytkowników
- Zmieniamy nazwę pola "password" na "password2" i zapisujemy tabelę
- Tworzymy nowe pole o nazwie "password", dowiadujemy się ile nasze nowe kodowanie ma stałych znaków i ustawiamy temu polu typ "binary" o długości tylu znaków ile ma nowe kodowanie (posłużmy się przykładem sha1, czyli długość 40 znaków) - oczywiście typ pola sobie możecie ustalić inny, ale binary będzie tutaj najlepszym wyjściem.
- Zapisujemy i zamykamy tabelę
- Zmieniamy na naszej stronie wszędzie typ kodowania ze starego na nowe

Teraz czas na dodanie prostego kodu PHP które uwolni nas od problematycznych sposobów które wypisałem na samej górze.

Załóżmy że rozpoczęcie kodu logowania jeśli użytkownik podał poprawne dane jest takie:

Aby zobaczyć tą treść, musisz się zalogować.


Teraz musimy skopiować nasze zapytanie '$dane' powyżej nazywając je np. "$dane1" i dodać "if'a", że jeśli nie znalazło hasła które podał użytkownik w polu 'password' (czyli tego w sha1) to wykonuje się drugie zapytanie, tym razem sprawdzające czy hasło w takim razie znajduje się w polu 'password2' (czyli tego w PASSWORD), a jeśli znalazło w 'password2' to wykonuje zapytanie kodujące podane pierwotne hasło w polu 'password' jako sha1, łącznie cały kod teraz powinien wyglądać tak:

Aby zobaczyć tą treść, musisz się zalogować.


I to by było na tyle.

Jeszcze jeślibyśmy chcieli aby jeśli użytkownik ma puste puste 'password' to tylko wtedy zadziałał nam kod sprawdzania pola password2, dodajemy do zapytania '$dane2' na sam koniec:
Aby zobaczyć tą treść, musisz się zalogować.

Czyli całe zapytanie po zmianie powinno wyglądać tak:
Aby zobaczyć tą treść, musisz się zalogować.


Mam nadzieję że niektórym się to przyda!
Pozdrawiam.
  • 0
  • 0
  • 0
  • 0

Grafika wstawiona przez użytkownika

Avatar użytkownika maxaz maxaz Zablokowany Posty: 100
Temat mi sugerował, że chodzi o md5 😀 .
Dodaj, że można:
Aby zobaczyć tą treść, musisz się zalogować.

I wtedy przerobi nam na to md5, też się powinno przydać ;) .
  • 0
  • 0
  • 0
  • 0

PA - W pełni autorskie poradniki

Grafika wstawiona przez użytkownika
Avatar użytkownika Xer Xer Administrator Posty: 3491
Użytkownik maxaz, 2012-06-07 15:03:49 napisał:

Temat mi sugerował, że chodzi o md5 😀 .
Dodaj, że można:

Aby zobaczyć tą treść, musisz się zalogować.

I wtedy przerobi nam na to md5, też się powinno przydać ;) .



Przecież mój skrypt może zmieniać dowolne kodowania haseł z jakiego się chce na jakie się chce, po co wgl. zmienna $pass? o.o
  • 0
  • 0
  • 0
  • 0

Grafika wstawiona przez użytkownika

Avatar użytkownika maxaz maxaz Zablokowany Posty: 100
$pass oznacza hasło, chyba nie lepiej w zmiennej, niż w tablicy, no nie?
  • 0
  • 0
  • 0
  • 0

PA - W pełni autorskie poradniki

Grafika wstawiona przez użytkownika
Avatar użytkownika Sensi Sensi Użytkownik Posty: 2
Bardzo dobre rozwiązanie 😀
  • 0
  • 0
  • 0
  • 0

Użytkownicy przeglądający ten wątek (1 os, w tym: zalogowani - 0, anonimowi - 0, goście - 1)

Aktualnie brak zalogowanych użytkowników.