Come crittografare e decrittografare la stringa in PHP?

Come Crittografare E Decrittografare La Stringa In Php



Crittografia è il processo di conversione dei dati in un codice segreto o in un formato non comprensibile a chi non ha la chiave per decodificarlo. Decrittazione è la procedura per prendere tali informazioni e restituirle al loro formato originale e leggibile. In PHP, crittografia, E decrittazione può essere utilizzato per proteggere dati sensibili, come password, informazioni sulla carta di credito e altri dati personali.

IL crittografia l'algoritmo dovrebbe includere una stringa di dati che si desidera crittografare e utilizzare il metodo di crittografia scelto per crittografare i dati. L'algoritmo dovrebbe quindi restituire i dati crittografati in un formato che è possibile archiviare in un database o in un file.

A decifrare i dati, è necessario utilizzare lo stesso metodo di crittografia per decrittografare i dati utilizzati per crittografarli. Ciò significa che dovrai memorizzare la chiave da qualche parte in modo da poterla utilizzare per decodificare i dati in un secondo momento.







Come crittografare e decrittografare una stringa PHP?

Una stringa PHP può essere crittografato E decifrato usando il apressl_encrpyt() E apressl_decrypt() metodi, rispettivamente.



Crittografare una stringa utilizzando la funzione openssl_encrypt()

A crittografare una stringa in PHP utilizzando il apressl_encrypt() funzione, è necessario fornire la stringa di testo in chiaro, il metodo di crittografia e una chiave. La funzione restituirà i dati crittografati, che potrai quindi archiviare o trasmettere in modo sicuro.



La sintassi per apressl_encrypt() metodo è:





stringa openssl_encrypt ( corda $dati , corda $metodo , corda $chiave , $opzioni = 0 , corda $iv , corda $tag = NULLO , corda $ tu , int $tag_lunghezza = 16 )
  • $dati: La stringa o i dati che desideri crittografare.
  • $metodo: Il metodo di crittografia o cifratura che desideri utilizzare. È possibile ottenere un elenco di metodi di cifratura supportati utilizzando il file openssl_get_cipher_methods()
  • $chiave: La chiave di crittografia che verrà utilizzata per crittografare i dati. Dovrebbe essere una stringa di lunghezza e casualità appropriate, in base al metodo di cifratura scelto.
  • $opzioni: Un parametro facoltativo che può includere flag aggiuntivi per opzioni di crittografia specifiche. Puoi combinare i flag usando il file OR bit a bit (|) Le bandiere comuni includono OPENSSL_RAW_DATI E OPENSSL_ZERO_PADDING .
  • $IV: Il vettore di inizializzazione (iv) utilizzato per la crittografia; dovrebbe essere un valore casuale e univoco, fornito come stringa.
  • $tag: Un parametro facoltativo utilizzato per le modalità di cifratura AEAD (Authenticated Encryption with Associated Data), come GCM (Galois/Counter Mode) o CCM (Counter with CBC-MAC). Memorizza il tag di autenticazione generato durante la crittografia.
  • Tuo: Ulteriori dati autenticati che possono essere usati per le modalità di cifratura AEAD.
  • $tag_lunghezza: La lunghezza del tag di autenticazione. Per la modalità GCM, la lunghezza del tag varia da 4 a 16 byte.

Per esempio:


$stringa_semplice = 'Benvenuto su Linuxhint \N ' ;
eco 'Stringa originale: ' . $stringa_semplice ;
$cifratura = 'AES-128-CTR' ;
$iv_lunghezza = openssl_cipher_iv_length ( $cifratura ) ;
$opzioni = 0 ;
$crittografia_iv = '1234567891011121' ;
$ chiave_di crittografia = 'Linux' ;
$crittografia = openssl_encrypt ( $stringa_semplice , $cifratura ,
$ chiave_di crittografia , $opzioni , $crittografia_iv ) ;
eco 'Stringa crittografata: ' . $crittografia . ' \N ' ;
?>

Il codice dichiara innanzitutto il testo di base “Benvenuto in Linuxhint” e usa il comando echo per mostrarlo. Quindi, specifica l'algoritmo di crittografia da utilizzare, AES-128-CTR . Utilizza anche il openssl_cipher_iv_length() funzione per calcolare la dimensione del vettore di inizializzazione (IV) necessario per questa cifra.



Il codice imposta la crittografia iv valore a '1234567891011121' e la chiave di crittografia a 'Linux' . La stringa crittografata viene quindi mostrata utilizzando il comando echo una volta che la crittografia è stata completata utilizzando il file apressl_encrypt() funzione. A causa del vettore di inizializzazione casuale utilizzato per la crittografia, la stringa crittografata finale varierà ogni volta.

Decrittografare una stringa utilizzando la funzione openssl_decrypt()

Per decrittografare una stringa in PHP, puoi usare il file apressl_decrypt() funzione. Questa funzione accetta i dati crittografati, il metodo di crittografia e la chiave come input e restituisce il testo in chiaro decrittografato.

La sintassi per apressl_decrypt() metodo è:

stringa openssl_decrypt ( corda $dati , corda $metodo , corda $chiave , int $opzioni = 0 , corda $iv , corda $tag , corda $ tu )

Gli argomenti passati alla funzione sono:

  • $dati: La stringa o i dati crittografati che desideri decrittografare.
  • $metodo: Il metodo di crittografia o cifratura utilizzata durante la crittografia. È possibile ottenere un elenco di metodi di cifratura supportati utilizzando il file openssl_get_cipher_methods()
  • $chiave: La chiave di crittografia utilizzata per crittografare i dati. Deve corrispondere alla chiave utilizzata durante la crittografia.
  • $opzioni: Un parametro facoltativo che può includere flag aggiuntivi per opzioni di decrittografia specifiche. È possibile combinare i flag utilizzando l'operatore OR bit a bit (|). Le bandiere comuni includono OPENSSL_RAW_DATI E OPENSSL_ZERO_PADDING .
  • $IV: IL vettore di inizializzazione (IV) utilizzato durante la crittografia. Dovrebbe essere lo stesso IV utilizzato durante la crittografia e passato come stringa.
  • $tag: Il tag di autenticazione per le modalità di cifratura AEAD (Authenticated Encryption with Associated Data), come GCM (Galois/Counter Mode) o CCM (Counter with CBC-MAC). Se l'autenticazione fallisce, openssl_decrypt() restituirà FALSE.
  • Tuo: Ulteriori dati autenticati utilizzati durante la crittografia per le modalità di crittografia AEAD.

Valore di ritorno: In caso di successo, restituisce la stringa decrittografata; in caso contrario, restituisce FALSO.

Per esempio:


$stringa_crittografata = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
eco 'Stringa crittografata: ' . $stringa_crittografata . ' \N ' ;
$decrittografia_iv = '1234567891011121' ;
$cifratura = 'AES-128-CTR' ;
$opzioni = 0 ;
$decrittografia_chiave = 'Linux' ;
$ decrittazione = openssl_decrypt ( $stringa_crittografata , $cifratura ,
$decrittografia_chiave , $opzioni , $decrittografia_iv ) ;
eco 'Stringa decifrata: ' . $ decrittazione ;
?>

La lunghezza del vettore in questo codice viene calcolata utilizzando il openssl_cipher_iv_length() funzione e gli stessi parametri di crittografia iv e chiave vengono utilizzati durante la crittografia. L'algoritmo di cifratura è definito come AES-128-CTR .

La stringa precedentemente crittografata viene decrittografata utilizzando l'algoritmo di cifratura, la chiave di crittografia, le impostazioni e i valori IV del file apressl_decrypt() funzione. Il testo decifrato risultante viene quindi mostrato utilizzando il comando echo.

Conclusione

La creazione di siti web comporta spesso crittografia e decrittografia dati. Utilizzando la crittografia per proteggere i dati sensibili, puoi evitare di esporre i tuoi utenti a furti di identità, frodi e altre minacce alla sicurezza. Le stringhe in PHP possono essere crittografate e decrittografate dalle funzioni apressl_encrypt() E apressl_decrypt() funzioni. Utilizzando attentamente l'algoritmo e la chiave di crittografia, puoi creare un sistema robusto e sicuro per la gestione dei dati sensibili nelle tue applicazioni PHP.