Introducere în funcția Hashing în PHP?

Înainte de a înțelege conceptul de funcție hashing în PHP, să înțelegem ce este hashing?

Hashing este transformarea unui set de caractere într-o valoare sau cheie cu lungime fixă ​​care reprezintă șirul original. Hashing-ul este folosit și în baza de date pentru a indexa și recupera elemente, deoarece devine mai rapid și mai ușor să găsești un articol cu ​​ajutorul tastelor hashed mai scurte decât să-l găsești cu valoarea inițială. De asemenea, este utilizat în multe dintre algoritmii de criptare din perspectivă de afaceri.

În PHP, funcțiile hashing și algoritmii sunt folosiți pentru criptarea datelor, astfel încât căutarea să devină mai ușoară și mai rapidă decât valoarea inițială. Funcțiile hash sunt utilizate pentru a ușura procesul, deoarece indexează valoarea inițială și este utilizat în fiecare moment, oriunde este necesar. Este întotdeauna o operație unidirecțională. O funcție hash bună nu ar trebui să producă aceeași ieșire sau aceeași valoare de hash pentru două sau multe intrări diferite introduse de utilizator. Dacă funcția hash produce aceeași ieșire pentru două intrări diferite, acest proces este cunoscut sub numele de coliziune.

Cum funcționează Hashing și sintaxa ei?

PHP este un limbaj de programare din partea serverului, iar rolul său principal este acela de a procesa funcționalitatea de back-end necesară pentru o anumită aplicație. În acest proces, autentificarea joacă un rol vital, deoarece vulnerabilitățile pot exploata datele cu ușurință. O modalitate de securizare a datelor este stocarea lor în baza de date în forma sa originală, dar acest lucru ar putea duce la o situație în care intrusul / persoana neautorizată poate lua datele cu ușurință și poate fi compromisă. Această situație poate fi ușor gestionată prin utilizarea funcțiilor Hashing.

Funcțiile Hash criptează datele în forma ei adevărată, deci, fără a-și schimba semnificația. Deci, atunci când un utilizator introduce datele în forma ei adevărată, datele vor fi criptate în backend și astfel se întâmplă autentificarea și autorizarea procesului de date. Algoritmii de hash cei mai folosiți sunt md5 (), sha1 () și puține funcții hash. Acești algoritmi sunt folosiți de dezvoltator pentru a autentifica datele introduse de utilizator sunt corecte sau nu pentru a continua procesul.

1. MD5 ()

Acest algoritm este unul dintre algoritmii puternici de hashing care calculează hash-ul md5 adică hash-ul de 16 sau 32 de caractere hexadecimale ale unei anumite șiruri. Acest șir transmis va fi convertit în forma hexadecimală criptată.

Sintaxa: string md5 ($ string, $ getRawOutput)

Sintaxa de mai sus a indicat șirul $ ca șir de intrare. Produsul brut este o intrare opțională, deoarece dezvoltatorul vrea să o convertească la 16 biți sau 32 biți. Dacă 16 biți trebuie să îl activeze, trebuie să fie setat TRUE Boolean și trecut la funcție. Dacă nu este setat, valoarea implicită de 32 biți este setată automat.

Exemplu: md5 (EduCBA, TRUE)

2. SHA1 ()

Acest algoritm este unul dintre algoritmii puternici de hashing care calculează hash-ul sha1 adică hash-ul format format binar de 20 de caractere sau număr hexadecimal de 40 de caractere dintr-o anumită șir. Acest șir transmis va fi convertit în forma hexadecimală criptată.

Sintaxa: string sha1 ($ string, $ getRawOutput)

Sintaxa de mai sus a indicat șirul $ ca șir de intrare. Produsul brut este o intrare opțională, deoarece dezvoltatorul dorește să fie de 20 de biți sau 40 de biți. Dacă 20 biți trebuie să îl activeze, trebuie să fie setat TRUE Boolean și trecut la funcție. Dacă nu este setat, valoarea implicită de 40 biți este setată automat.

Exemplu: sha1 (EduCBA, ADEVĂRAT)

Funcția Hashing în PHP

Mai jos sunt enumerate câteva funcții de hashing utilizate în PHP pentru a cripta / converti datele de la forma originală la hași.

1. Hash_equals

Această funcție compară cele două șiruri în același timp, indiferent dacă sunt egale sau nu. Această funcție returnează TRUE când șirurile sunt egale și FALSE dacă șirurile nu sunt egale. Ambele argumente ar trebui să fie aceleași pentru a compara șirurile, altfel se va întoarce imediat fără a se compara chiar șiruri în ordine alfabetică, iar uneori, lungimea șirului poate fi dezvăluită și în cazul unui atac de sincronizare.

2. Hash_final

Această funcție returnează o digestie hash a șirului de intrare trecut la această funcție. Când ieșirea brută este setată pe TRUE, atunci oferă date binare brute și când este setată pe FALSE, dă un număr hexadecimal cu minuscule. Această funcție returnează o digerare hexadecimală calculată a șirului ca ieșire.

3. Hash_init

Această funcție este utilizată împreună cu algoritmii de hashing, adică md5 (), sha (), etc. Această funcție, împreună cu algoritmii de hashing, produc ieșire pentru a fi folosită cu hash_update (), hash final (), etc. într-un șir sau o variabilă și trecut la oricare dintre funcții.

4. Hash_copy

Această funcție este utilizată pentru a copia contextul hashing. Șirul transmis ca o intrare la funcție este izvorât de unul dintre algoritmii folosiți în funcția hash_init (), iar ieșirea corespunzătoare ar fi șirul hashed care este transmis acestei funcții. Această funcție returnează o formă hashed a ieșirii date de funcția hash_init.

Exemple de funcții Hashing în PHP

Următoarea este o listă a funcției de hashing în PHP explicată în detaliu,

Exemplul # 1

Cod:

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

ieşire:

Exemplul # 2

Cod:

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

ieşire:

Exemplul # 3

Cod:

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

ieşire:

Concluzie

În acest articol, am discutat despre ce este hashing-ul și diferiții algoritmi ai acestuia. De asemenea, am discutat câteva funcții de hashing utilizate în PHP pentru criptarea datelor pentru a preveni atacurile rău intenționate și vulnerabile. Din cauza acestor atacuri, datele nu sunt sigure și se produc pierderi de date. Deci, tehnica de hashing a fost introdusă astfel încât să nu se piardă date și să fie securizată prin diferite atacuri.

Articole recomandate

Acesta este un ghid pentru funcția Hashing în PHP. Aici discutăm funcția sa, sintaxa și top 4 funcție de hashing în PHP cu exemple și implementarea codului. De asemenea, puteți consulta următoarele articole pentru a afla mai multe-

  1. Tipuri de funcții în PHP cu exemple
  2. Cum să verificați Palindrome în PHP?
  3. Sortarea Arrayului Asociativ în PHP
  4. Cum se convertește formatul de date în PHP?