VII - Kodowanie i hashowanie
Mamy już nawet statystyki gracza, ale co z tego skoro hasła do kont dla osoby bardziej obeznanej z internetem są na wyciągnięcie ręki? W języku php istnieje kilka rodzajów kodowań. Najbardziej popularne to md5. Zaraz za nim stoi sha1.
1. Md5
Md5 to bardzo prosta a zarazem popularna funkcja. Jest to najpopularniejsza metoda szyfrowania haseł w internecie. Jeszcze niedawno była niemożliwa do odkodowania. Dziś istnieje jednak sposób na odkodowanie hash'a md5 (nie ma jednak 100% pewności, że odkodowany wyraz będzie taki sam jak przed zakodowaniem). Funkcję wywołujemy w następujący sposób
Jak więc tego używać przy tworzeniu gry? Hasła w bazie danych można zapisywać właśnie używając funkcji md5. Aby tego dokonać trzeba zmienić typ pola `password` w tabeli `konta` z 'text' na 'varchar' o długości 32, gdyż na 32 znaki kodowane są wyrazy przy md5. Następnie w każdym miejscu gdzie sprawdzany jest login gracza trzeba użyć md5. Sprawdzenie hasła będzie więc wyglądało tak:
Następnie wszystko wygląda tak samo jak w kodzie z 2giego rodziału - logowanie. Jeśli chcemy użyć md5 będziemy musieli użyć tego także przy rejestracji. Skrypt będzie wyglądał tak sam jak ten w 3cim rozdziale jednak będziemy musieli do niego dodać to samo co do skryptu rejestracji.
Składnia funkcji md5 wygląda następująco:
string md5 ( string $str [, bool $raw_output] );
wynika z tego, że opcjonalnie funkcja przybiera wartość $raw_output. Jeśli jest ona ustawiona znaki konwertowane są w ciągi 16 znakowe a nie 32.
2. Sha1
Jest to funkcja o wiele rzadziej używana przy kodowaniu, czy jest mniej bezpieczna - nie wiem, gdyż sam używam funkcji md5. Działa ona bardzo podobnie, używa jednak nieco innego hasha, a co za tym idzie koduje nie na 32 znaki tylko aż na 40 znaków. Użycie funkcji wygląda identycznie jak przy md5. Jedyną różnicą jest napisanie sha1 zamiast md5 czyli