Hashing-functie in PHP - Hoe werkt de hashing-functie in php met syntaxis?

Inhoudsopgave:

Anonim

Inleiding tot de hashfunctie in PHP?

Laten we, voordat we het concept van de hashing-functie in PHP begrijpen, begrijpen wat hashing is?

Hashing is de transformatie van een set tekens naar een waarde of sleutel met een vaste lengte die de oorspronkelijke tekenreeks vertegenwoordigt. Hashing wordt ook in de database gebruikt om items te indexeren en op te halen, omdat het sneller en gemakkelijker wordt om een ​​item te vinden met behulp van kortere gehashte sleutels dan om het te vinden met de oorspronkelijke waarde. Het wordt ook gebruikt in veel van de coderingsalgoritmen vanuit een zakelijk perspectief.

In PHP worden hashing-functies en algoritmen gebruikt om de gegevens te coderen, zodat het zoeken eenvoudiger en sneller wordt dan de oorspronkelijke waarde. De hash-functies worden gebruikt om het proces te vergemakkelijken omdat het de oorspronkelijke waarde indexeert en het wordt altijd en overal gebruikt. Het is altijd een eenrichtingsoperatie. Een goede hashfunctie mag niet dezelfde uitvoer of hashwaarde produceren voor twee of veel verschillende ingangen die door de gebruiker zijn ingevoerd. Als de hashfunctie dezelfde uitvoer produceert voor twee verschillende ingangen, staat dit proces bekend als een botsing.

Hoe werkt de hashfunctie en zijn syntaxis?

PHP is een server-side programmeertaal en de belangrijkste rol is het verwerken van de back-end functionaliteit die vereist is voor een bepaalde applicatie. In dit proces speelt authenticatie een cruciale rol omdat kwetsbaarheden de gegevens gemakkelijk kunnen exploiteren. Een manier om de gegevens te beveiligen, is door ze in de oorspronkelijke vorm in de database op te slaan, maar dit kan leiden tot een situatie waarin de indringer / onbevoegde persoon de gegevens gemakkelijk kan ophalen en in gevaar kan worden gebracht. Deze situatie kan eenvoudig worden aangepakt met behulp van Hashing-functies.

Hash-functies coderen de gegevens in hun ware vorm, dus zonder de betekenis ervan te wijzigen. Dus wanneer een gebruiker de gegevens in zijn ware vorm invoert, worden de gegevens versleuteld in de backend en vindt authenticatie en autorisatie van het gegevensproces plaats. De meest gebruikte hash-algoritmen zijn md5 (), sha1 () en enkele hash-functies. Deze algoritmen worden door de ontwikkelaar gebruikt om te verifiëren dat de gegevens die door de gebruiker zijn ingevoerd correct zijn of niet om verder te gaan met het proces.

1. MD5 ()

Dit algoritme is een van de krachtige hashing-algoritmen die de md5-hash berekent, dwz de hash van een hexadecimaal getal van 16 of 32 tekens van een bepaalde tekenreeks. Deze doorgegeven string wordt omgezet in de gecodeerde hexadecimale vorm.

Syntaxis: string md5 ($ string, $ getRawOutput)

De bovenstaande syntaxis gaf de $ string aan als de input string. De onbewerkte uitvoer is een optionele invoer omdat de ontwikkelaar deze wil converteren naar 16 bit of 32 bit. Als 16 bit moet worden ingeschakeld, moet deze op TRUE Boolean worden ingesteld en aan de functie worden doorgegeven. Als het niet is ingesteld, wordt de standaardwaarde van 32 bit automatisch ingesteld.

Voorbeeld: md5 (EduCBA, TRUE)

2. SHA1 ()

Dit algoritme is een van de krachtige hashing-algoritmen die de sha1-hash berekent, dwz de hash van een binair formaat van 20 tekens of een hexadecimaal getal van 40 tekens van een bepaalde tekenreeks. Deze doorgegeven string wordt omgezet in de gecodeerde hexadecimale vorm.

Syntaxis: string sha1 ($ string, $ getRawOutput)

De bovenstaande syntaxis gaf de $ string aan als de input string. De onbewerkte uitvoer is een optionele invoer omdat de ontwikkelaar wil dat deze 20 bit of 40 bit is. Als 20 bit moet worden ingeschakeld, moet het op TRUE Boolean worden ingesteld en aan de functie worden doorgegeven. Als het niet is ingesteld, wordt de standaard 40 bit automatisch ingesteld.

Voorbeeld: sha1 (EduCBA, TRUE)

Hashing-functie in PHP

Hieronder staan ​​enkele hashfuncties die in PHP worden gebruikt om de gegevens van de oorspronkelijke naar de hash-vorm te coderen / converteren.

1. Hash_equals

Deze functie vergelijkt de twee strings tegelijkertijd of ze gelijk zijn of niet. Deze functie retourneert TRUE als de tekenreeksen gelijk zijn en FALSE als de tekenreeksen niet gelijk zijn. Beide argumenten moeten hetzelfde zijn om de strings te vergelijken, anders zal het onmiddellijk false retourneren zonder zelfs strings alfabetisch te vergelijken en soms kan de lengte van de string ook worden onthuld in het geval van timing-aanval.

2. Hash_final

Deze functie retourneert een hash-samenvatting van de invoertekenreeks die aan deze functie is doorgegeven. Wanneer de onbewerkte uitvoer is ingesteld op WAAR, geeft het onbewerkte binaire gegevens en wanneer het is ingesteld op ONWAAR, geeft het een hexadecimaal getal in kleine letters. Deze functie retourneert een berekende hexadecimale samenvatting van de tekenreeks als uitvoer.

3. Hash_init

Deze functie wordt gebruikt in combinatie met de hashing-algoritmen ie md5 (), sha (), enz. Deze functie samen met de hashing-algoritmen produceert uitvoer voor gebruik met hash_update (), hash final (), etc. De uitvoer van de hash_init wordt opgeslagen in een string of variabele en doorgegeven aan een van de functies.

4. Hash_copy

Deze functie wordt gebruikt om de hashing-context te kopiëren. De tekenreeks die wordt doorgegeven als invoer voor de functie, wordt gehasht door een van de algoritmen die worden gebruikt in de functie hash_init () en de overeenkomstige uitvoer is de gehashte tekenreeks die aan deze functie wordt doorgegeven. Deze functie retourneert een gehashte vorm van de uitvoer die wordt gegeven door de hash_init-functie.

Voorbeelden van de hashfunctie in PHP

Het volgende is een lijst met hashing-functie in PHP, in detail uitgelegd,

Voorbeeld 1

Code:

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

Output:

Voorbeeld 2

Code:

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

Output:

Voorbeeld 3

Code:

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

Output:

Conclusie

In dit artikel hebben we besproken wat hashing en de verschillende algoritmen ervan zijn. We hebben ook een paar hashing-functies besproken die in PHP worden gebruikt om de gegevens te coderen om kwaadaardige en kwetsbare aanvallen te voorkomen. Vanwege deze aanvallen zijn de gegevens niet beveiligd en treden gegevensverlies op. Dus de hashing-techniek is geïntroduceerd zodat er geen gegevensverlies is en deze wordt beveiligd door verschillende aanvallen.

Aanbevolen artikelen

Dit is een handleiding voor de hashfunctie in PHP. Hier bespreken we de werkende, syntaxis en top 4 hashfunctie in PHP met voorbeelden en code-implementatie. U kunt ook de volgende artikelen bekijken voor meer informatie-

  1. Soorten functies in PHP met voorbeelden
  2. Hoe Palindrome in PHP te controleren?
  3. Sortering van associatieve array in PHP
  4. Hoe datumnotatie in PHP te converteren?