Introduzione alla funzione hash in PHP?

Prima di comprendere il concetto di funzione di hashing in PHP, capiamo cos'è l'hashing?

L'hashing è la trasformazione di un set di caratteri in un valore o chiave a lunghezza fissa che rappresenta la stringa originale. L'hashing viene utilizzato anche nel database per indicizzare e recuperare gli elementi perché diventa più veloce e più facile trovare un elemento con l'aiuto di chiavi con hash più brevi rispetto a trovarlo con il valore originale. Viene anche utilizzato in molti algoritmi di crittografia dal punto di vista aziendale.

In PHP, le funzioni di hashing e gli algoritmi vengono utilizzati per crittografare i dati in modo che la ricerca diventi più semplice e veloce del valore originale. Le funzioni hash vengono utilizzate per facilitare il processo in quanto indicizza il valore originale e viene utilizzato ogni volta dove richiesto. È sempre un'operazione a senso unico. Una buona funzione hash non dovrebbe produrre lo stesso output o valore hash per due o molti input diversi immessi dall'utente. Se la funzione hash produce lo stesso output per due input diversi, questo processo è noto come una collisione.

Come funziona la funzione hash e la sua sintassi?

PHP è un linguaggio di programmazione lato server e il suo ruolo principale è quello di elaborare la funzionalità di back-end richiesta per una particolare applicazione. In questo processo, l'autenticazione svolge un ruolo vitale in quanto le vulnerabilità possono sfruttare facilmente i dati. Un modo per proteggere i dati è archiviarli nel database nella sua forma originale, ma ciò potrebbe portare a una situazione in cui l'intruso / persona non autorizzata può prendere facilmente i dati e possono essere compromessi. Questa situazione può essere facilmente gestita utilizzando le funzioni di hash.

Le funzioni hash crittografano i dati nella sua forma reale, quindi senza modificarne il significato. Pertanto, quando un utente immette i dati nella sua forma reale, i dati verranno crittografati nel back-end e quindi si verifica l'autenticazione e l'autorizzazione del processo dei dati. Gli algoritmi hash più comunemente usati sono md5 (), sha1 () e poche funzioni hash. Questi algoritmi vengono utilizzati dallo sviluppatore per autenticare i dati inseriti dall'utente sia corretto o per non procedere ulteriormente con il processo.

1. MD5 ()

Questo algoritmo è uno dei potenti algoritmi di hashing che calcola l'hash md5, ovvero l'hash del numero esadecimale di 16 o 32 caratteri di una particolare stringa. Questa stringa passata verrà convertita nella forma esadecimale crittografata.

Sintassi: string md5 ($ string, $ getRawOutput)

La sintassi sopra indicata indicava la stringa $ come stringa di input. L'output non elaborato è un input facoltativo poiché lo sviluppatore desidera convertirlo in 16 bit o 32 bit. Se 16 bit deve essere abilitato, deve essere impostato su TRUE booleano e passato alla funzione. Se non è impostato, il valore predefinito di 32 bit viene impostato automaticamente.

Esempio: md5 (EduCBA, TRUE)

2. SHA1 ()

Questo algoritmo è uno dei potenti algoritmi di hashing che calcola l'hash sha1, ovvero l'hash del formato binario di 20 caratteri o il numero esadecimale di 40 caratteri di una particolare stringa. Questa stringa passata verrà convertita nella forma esadecimale crittografata.

Sintassi: string sha1 ($ string, $ getRawOutput)

La sintassi sopra indicata indicava la stringa $ come stringa di input. L'output non elaborato è un input facoltativo in quanto lo sviluppatore desidera che sia di 20 bit o 40 bit. Se è necessario abilitare 20 bit, deve essere impostato su TRUE booleano e passato alla funzione. Se non è impostato, il valore predefinito di 40 bit viene impostato automaticamente.

Esempio: sha1 (EduCBA, TRUE)

Funzione di hash in PHP

Di seguito sono elencate alcune funzioni di hashing utilizzate in PHP per crittografare / convertire i dati dalla forma originale a quella con hash.

1. Hash_equals

Questa funzione confronta le due stringhe contemporaneamente, indipendentemente dal fatto che siano uguali o meno. Questa funzione restituisce VERO quando le stringhe sono uguali e FALSO se le stringhe non sono uguali. Entrambi gli argomenti dovrebbero essere gli stessi per confrontare le stringhe altrimenti restituirà immediatamente falso senza nemmeno confrontare le stringhe in ordine alfabetico e talvolta la lunghezza della stringa può anche essere rivelata in caso di attacco temporizzato.

2. Hash_final

Questa funzione restituisce un digest hash della stringa di input passata a questa funzione. Quando l'output non elaborato è impostato su TRUE, fornisce dati binari non elaborati e quando è impostato su FALSE, fornisce un numero esadecimale minuscolo. Questa funzione restituisce un digest esadecimale calcolato della stringa come output.

3. Hash_init

Questa funzione viene utilizzata insieme agli algoritmi di hashing ovvero md5 (), sha (), ecc. Questa funzione insieme agli algoritmi di hashing produce output da utilizzare con hash_update (), hash final (), ecc. L'output di hash_init viene memorizzato in una stringa o variabile e passato a una qualsiasi delle funzioni.

4. Hash_copy

Questa funzione viene utilizzata per copiare il contesto di hashing. La stringa passata come input per la funzione è sottoposta a hash da uno degli algoritmi utilizzati nella funzione hash_init () e l'output corrispondente sarebbe la stringa con hash che viene passata a questa funzione. Questa funzione restituisce una forma con hash dell'output dato dalla funzione hash_init.

Esempi di funzione hash in PHP

Di seguito è riportato un elenco di funzioni di hashing in PHP spiegate in dettaglio,

Esempio 1

Codice:

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

Produzione:

Esempio n. 2

Codice:

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

Produzione:

Esempio n. 3

Codice:

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

Produzione:

Conclusione

In questo articolo, abbiamo discusso di ciò che è hashing e dei suoi vari algoritmi. Inoltre, abbiamo discusso di alcune funzioni di hashing utilizzate in PHP per crittografare i dati per prevenire attacchi dannosi e vulnerabili. A causa di questi attacchi, i dati non sono sicuri e si verifica una perdita di dati. Pertanto, la tecnica di hashing è stata introdotta in modo tale da evitare la perdita di dati e la protezione da vari attacchi.

Articoli consigliati

Questa è una guida alla funzione hash in PHP. Qui discutiamo il suo funzionamento, la sintassi e la funzione di hashing 4 principali in PHP con esempi e implementazione del codice. Puoi anche consultare i seguenti articoli per saperne di più-

  1. Tipi di funzioni in PHP con esempi
  2. Come controllare Palindrome in PHP?
  3. Ordinamento di array associativi in ​​PHP
  4. Come convertire il formato della data in PHP?

Categoria: