Wprowadzenie do funkcji mieszania w PHP?
Zanim zrozumiemy pojęcie funkcji skrótu w PHP, zrozummy, co to jest skrót?
Hashing to przekształcenie zestawu znaków w wartość lub klucz o stałej długości, który reprezentuje oryginalny ciąg. Hashowanie jest również używane w bazie danych do indeksowania i pobierania elementów, ponieważ znalezienie elementu za pomocą krótszych kluczy skrótu staje się szybsze i łatwiejsze niż znajdowanie go z oryginalną wartością. Jest również stosowany w wielu algorytmach szyfrowania z perspektywy biznesowej.
W PHP funkcje i algorytmy mieszające służą do szyfrowania danych, dzięki czemu wyszukiwanie staje się łatwiejsze i szybsze niż pierwotna wartość. Funkcje skrótu są używane w celu ułatwienia procesu, ponieważ indeksuje on pierwotną wartość i jest używany za każdym razem, gdy jest to wymagane. Jest to zawsze operacja jednokierunkowa. Dobra funkcja skrótu nie powinna generować tej samej wartości wyjściowej lub wartości skrótu dla dwóch lub wielu różnych danych wejściowych wprowadzonych przez użytkownika. Jeśli funkcja skrótu generuje takie same dane wyjściowe dla dwóch różnych danych wejściowych, proces ten nazywany jest kolizją.
Jak działa funkcja mieszania i jej składnia?
PHP jest językiem programowania po stronie serwera, a jego główną rolą jest przetwarzanie funkcji zaplecza wymaganych dla konkretnej aplikacji. W tym procesie uwierzytelnianie odgrywa istotną rolę, ponieważ luki w zabezpieczeniach mogą łatwo wykorzystywać dane. Jednym ze sposobów zabezpieczenia danych jest przechowywanie ich w bazie danych w oryginalnej formie, ale może to prowadzić do sytuacji, w której intruz / nieupoważniona osoba może łatwo pobrać dane i może zostać zagrożone. Tę sytuację można łatwo rozwiązać za pomocą funkcji mieszania.
Funkcje skrótu szyfrują dane w ich prawdziwej formie, dlatego nie zmieniają ich znaczenia. Tak więc, gdy użytkownik wprowadzi dane w swojej prawdziwej formie, dane zostaną zaszyfrowane w wewnętrznej bazie danych, co spowoduje uwierzytelnienie i autoryzację procesu przetwarzania danych. Najczęściej stosowanymi algorytmami skrótu są md5 (), sha1 () i kilka funkcji skrótu. Algorytmy te są używane przez programistę do uwierzytelnienia danych wprowadzonych przez użytkownika, czy jest poprawny lub nie kontynuuje procesu.
1. MD5 ()
Algorytm ten jest jednym z potężnych algorytmów mieszających, które obliczają skrót md5, tj. Skrót 16 lub 32 znaków liczby szesnastkowej określonego łańcucha. Przekazany ciąg zostanie przekonwertowany na zaszyfrowaną postać szesnastkową.
Składnia: string md5 ($ string, $ getRawOutput)
Powyższa składnia wskazała ciąg $ jako ciąg wejściowy. Wyjściowe dane wyjściowe są opcjonalne, ponieważ deweloper chce przekonwertować je na 16 lub 32 bity. Jeśli 16-bit ma włączyć, musi być ustawiony PRAWDA logiczna i przekazany do funkcji. Jeśli nie jest ustawiony, domyślnie 32 bit jest ustawiany automatycznie.
Przykład: md5 (EduCBA, TRUE)
2. SHA1 ()
Algorytm ten jest jednym z potężnych algorytmów mieszających, które obliczają wartość skrótu sha1, tj. Skrót 20-znakowego formatu binarnego lub 40-znakowej liczby szesnastkowej określonego łańcucha. Przekazany ciąg zostanie przekonwertowany na zaszyfrowaną postać szesnastkową.
Składnia: string sha1 ($ string, $ getRawOutput)
Powyższa składnia wskazała ciąg $ jako ciąg wejściowy. Wyjściowe dane wyjściowe są opcjonalnym wejściem, ponieważ deweloper chce, aby było to 20 lub 40 bitów. Jeśli 20 bit musi włączyć, musi zostać ustawiony PRAWDA logiczna i przekazany do funkcji. Jeśli nie jest ustawiony, domyślnie 40 bitów jest ustawiany automatycznie.
Przykład: sha1 (EduCBA, TRUE)
Funkcja mieszania w PHP
Poniżej wymieniono kilka funkcji haszujących używanych w PHP do szyfrowania / konwertowania danych z oryginalnej na mieszaną.
1. Hash_equals
Ta funkcja porównuje dwa ciągi jednocześnie, niezależnie od tego, czy są one równe, czy nie. Ta funkcja zwraca PRAWDA, gdy łańcuchy są równe, i FAŁSZ, jeśli łańcuchy nie są równe. Oba argumenty powinny być takie same, aby porównać ciągi, w przeciwnym razie natychmiast zwróci fałsz, nawet nie porównując ciągów alfabetycznie, a czasami długość łańcucha może być również ujawniona w przypadku ataku czasowego.
2. Hash_final
Ta funkcja zwraca skrót hash ciągu wejściowego przekazanego do tej funkcji. Gdy nieprzetworzone dane wyjściowe są ustawione na PRAWDA, wówczas podaje surowe dane binarne, a gdy jest ustawione na FAŁSZ, podaje małą liczbę szesnastkową. Ta funkcja zwraca obliczony skrót szesnastkowy łańcucha jako wynik.
3. Hash_init
Ta funkcja jest używana wraz z algorytmami mieszającymi, tj. Md5 (), sha () itp. Ta funkcja wraz z algorytmami mieszającymi generuje dane wyjściowe do użycia z hash_update (), hash final () itp. Dane wyjściowe hash_init są przechowywane w ciągu lub zmiennej i przekazywany do dowolnej funkcji.
4. Hash_copy
Ta funkcja służy do kopiowania kontekstu mieszającego. Łańcuch przekazany jako dane wejściowe do funkcji jest mieszany przez jeden z algorytmów używanych w funkcji hash_init (), a odpowiednim wyjściem byłby ciąg mieszany, który jest przekazywany do tej funkcji. Ta funkcja zwraca zakodowaną postać danych wyjściowych podaną przez funkcję hash_init.
Przykłady funkcji mieszania w PHP
Poniżej znajduje się szczegółowa lista funkcji haszujących w PHP,
Przykład 1
Kod:
<_?php$c = hash_init("md5");
hash_update($c, "content");
$copy_c = hash_copy($c);
echo hash_final($c);
hash_update($copy_c, "content");
echo hash_final($copy_c), "\n";
?>
Wynik:
Przykład nr 2
Kod:
<_?php$expected = crypt('leela123', '$2a$07$user$');
$right = crypt('leela123', '$2a$07$user$');
$wrong = crypt('leeeela233', '$2a$07$usedwrongstring$');
var_dump(hash_equals($expected, $right));
var_dump(hash_equals($expected, $wrong));
?>
Wynik:
Przykład nr 3
Kod:
<_?php$hash = hash_init('sha1');
hash_update($hash, 'This is an example of PHP Hash function');
echo hash_final($hash);
?>
Wynik:
Wniosek
W tym artykule omówiliśmy, co jest hashowaniem i jego różne algorytmy. Omówiliśmy także kilka funkcji haszujących używanych w PHP do szyfrowania danych w celu zapobiegania złośliwym i podatnym atakom. Z powodu tych ataków dane nie są bezpieczne i następuje utrata danych. Tak więc wprowadzono technikę haszującą, aby nie doszło do utraty danych i będzie zabezpieczona różnymi atakami.
Polecane artykuły
Jest to przewodnik po funkcji mieszania w PHP. Tutaj omawiamy jego działającą, składniową i pierwszą funkcję haszującą 4 w PHP z przykładami i implementacją kodu. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej-
- Rodzaje funkcji w PHP z przykładami
- Jak sprawdzić Palindrome w PHP?
- Sortowanie tablicy asocjacyjnej w PHP
- Jak przekonwertować format daty w PHP?