Delovanje funkcije v PHP - Kako deluje hashing funkcija v php s skladnjo?

Kazalo:

Anonim

Uvod v funkcijo lova v PHP?

Preden razumemo koncept funkcije mešanja v PHP, razumemo, kaj je hešing?

Hashing je preobrazba niza znakov v vrednost ali ključ s fiksno dolžino, ki predstavlja izvirni niz. Hashing se v bazi uporablja tudi za indeksiranje in pridobivanje elementov, ker lahko hitreje in lažje najdete element s krajšimi ključi, kot ga najdete s prvotno vrednostjo. Uporablja se tudi v mnogih algoritmih šifriranja s poslovnega vidika.

V PHP se funkcije šifriranja in algoritmi uporabljajo za šifriranje podatkov, tako da iskanje postane lažje in hitrejše od prvotne vrednosti. Hash funkcije se uporabljajo za olajšanje postopka, saj indeksira prvotno vrednost in se uporablja kadar koli, kjer je to potrebno. Vedno gre za enosmerno delovanje. Dobra hash funkcija ne sme ustvarjati enake izhodne ali hash vrednosti za dva ali več različnih vhodov, ki jih vnese uporabnik. Če hash funkcija proizvede enak izhod za dva različna vhoda, je ta postopek znan kot trk.

Kako deluje Hashing funkcija in njena sintaksa?

PHP je programski jezik na strani strežnika, njegova glavna vloga pa je, da mora obdelovati zadnja funkcionalnost, ki je potrebna za določeno aplikacijo. V tem procesu ima avtentikacijo ključno vlogo, saj lahko ranljivosti brez težav izkoristijo podatke. Eden od načinov varovanja podatkov je shranjevanje v bazi podatkov v izvirni obliki, vendar lahko to privede do situacije, ko lahko vsiljivec / nepooblaščena oseba podatke preprosto prevzame in se lahko ogrozi. S to situacijo je mogoče enostavno obvladati s pomočjo funkcij Hashing.

Hash funkcije šifrirajo podatke v pravi obliki, ne da bi spremenili pomen. Ko torej uporabnik vnese podatke v pravi obliki, se podatki šifrirajo v zaledju in se tako zgodi overjanje in avtorizacija podatkovnega procesa. Najpogosteje uporabljeni hash algoritmi so md5 (), sha1 () in nekaj hash funkcij. Razvijalec te algoritme uporablja za preverjanje pristnosti podatkov, ki jih vnese uporabnik, ali ne nadaljuje s postopkom.

1. MD5 ()

Ta algoritem je eden močnih algoritmov mešanja, ki izračuna md5 hash, tj heš 16-ali ali 32-mestno šestnajstiško število posameznega niza. Ta preneseni niz se pretvori v šifrirano šestnajstiško obliko.

Sintaksa: string md5 ($ string, $ getRawOutput)

Zgornja sintaksa je označila niz $ kot vhodni niz. Surovi izhod je neobvezen vhod, saj ga razvijalec želi pretvoriti v 16 ali 32 bit. Če mora 16 bit omogočiti, je treba nastaviti TRUE Boolean in preiti v funkcijo. Če ni nastavljen, se 32-bitna privzeta nastavitev samodejno.

Primer: md5 (EduCBA, TRUE)

2. SHA1 ()

Ta algoritem je eden močnih algoritmov mešanja, ki izračuna sha1 hash, torej hash 20-znakovnega binarnega formata ali 40-mestno šestnajstiško število posameznega niza. Ta preneseni niz se pretvori v šifrirano šestnajstiško obliko.

Sintaksa: string sha1 ($ string, $ getRawOutput)

Zgornja sintaksa je označila niz $ kot vhodni niz. Surovi izhod je neobvezen vhod, saj razvijalec želi, da je 20-bitni ali 40-bitni. Če mora 20 bit omogočiti, je treba nastaviti TRUE Boolean in preiti v funkcijo. Če ni nastavljen, se samodejno nastavi 40-bitna privzeta nastavitev.

Primer: sha1 (EduCBA, TRUE)

Hashing funkcija v PHP

Spodaj naštetih je nekaj funkcij hashinga, ki se uporabljajo v PHP-ju za šifriranje / pretvarjanje podatkov iz izvirnega v razpršeno obliko.

1. Hash_equals

Ta funkcija primerja oba niza hkrati, ali sta enaka ali ne. Ta funkcija vrne TRUE, kadar so strune enake, in FALSE, če strune niso enake. Oba argumenta morata biti enaka, če primerjate strune, se bo takoj vrnil napačen, ne da bi tudi abecedno primerjal strune, včasih pa se lahko razkrije tudi dolžina niza v primeru časovnega napada.

2. Hash_final

Ta funkcija vrne hash preiskavo vhodnega niza, posredovanega tej funkciji. Ko je surov izhod postavljen na TRUE, potem poda neobdelan binarni podatek, ko pa je FALSE, daje šestnajstično število z malimi črkami. Ta funkcija vrne izračunani šestnajstiški prejem niza kot izhod.

3. Hash_init

Ta funkcija se uporablja skupaj z algoritmi hashinga, tj. Md5 (), sha () itd. Ta funkcija skupaj z algoritmi mešanja ustvari izhod za uporabo s hash_update (), hash final () itd. Izhod hash_init je shranjen v nizu ali spremenljivki in se prenese na katero koli funkcijo.

4. Hash_copy

Ta funkcija se uporablja za kopiranje konteksta mešanja. Niz, posredovan kot vhod v funkcijo, se razbere z enim od algoritmov, ki se uporabljajo v funkciji hash_init (), ustrezen izhod pa bi bil razstavljeni niz, ki je posredovan tej funkciji. Ta funkcija vrne razstavljeno obliko izhoda, ki jo daje funkcija hash_init.

Primeri funkcije lova v PHP

Sledi seznam funkcij mešanja v PHP, ki je podrobno razložen,

Primer # 1

Koda:

<_?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";
?>

Izhod:

Primer # 2

Koda:

<_?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));
?>

Izhod:

Primer # 3

Koda:

<_?php
$hash = hash_init('sha1');
hash_update($hash, 'This is an example of PHP Hash function');
echo hash_final($hash);
?>

Izhod:

Zaključek

V tem članku smo razpravljali o tem, kaj je hešing in njegovi različni algoritmi. Prav tako smo razpravljali o nekaj hashskih funkcij, ki se uporabljajo v PHP-ju za šifriranje podatkov za preprečevanje zlonamernih in ranljivih napadov. Zaradi teh napadov podatki niso varni in pride do izgube podatkov. Torej, tehniko ostrenja je bila uvedena tako, da ne bo prišlo do izgube podatkov in jo bodo zavarovali z različnimi napadi.

Priporočeni članki

To je vodnik za Hashing Function v PHP. Tukaj razpravljamo o njeni delovni, sintaksi in top 4 funkciji mešanja v PHP s primeri in implementacijo kode. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Vrste funkcij v PHP s primeri
  2. Kako preveriti Palindrome v PHP?
  3. Razvrščanje asociativnega niza v PHP
  4. Kako spremeniti obliko datuma v PHP?