Cum se criptează și se decriptează șirul în PHP?

Cum Se Cripteaza Si Se Decripteaza Sirul In Php



Criptare este procesul de conversie a datelor într-un cod secret sau într-un format care nu este de înțeles oricui nu are cheia pentru a le decoda. Decriptare este procedura de preluare a acelei informații și de returnare a acesteia la formatul original, care poate fi citit. În PHP, criptare, și decriptare poate fi folosit pentru a proteja datele sensibile, cum ar fi parolele, informațiile despre cardul de credit și alte date personale.

The criptare algoritmul ar trebui să preia un șir de date pe care doriți să-l criptați și să folosească metoda de criptare aleasă pentru a cripta datele. Algoritmul ar trebui apoi să returneze datele criptate într-un format pe care îl puteți stoca într-o bază de date sau într-un fișier.

La decriptează datele, ar trebui să utilizați aceeași metodă de criptare pentru a decripta datele care au fost folosite pentru a le cripta. Aceasta înseamnă că va trebui să stocați cheia undeva, astfel încât să o puteți folosi pentru a decoda datele mai târziu.







Cum se criptează și decriptează un șir PHP?

Un șir PHP poate fi criptat și decriptat folosind: the openssl_encrpyt() și openssl_decrypt() metode, respectiv.



Criptați un șir folosind funcția openssl_encrypt().

La criptați un șir în PHP folosind openssl_encrypt() funcție, trebuie să furnizați șirul de text simplu, metoda de criptare și o cheie. Funcția va returna datele criptate, pe care apoi le puteți stoca sau transmite în siguranță.



Sintaxa pentru openssl_encrypt() metoda este:





șir openssl_encrypt ( şir $date , şir $metoda , şir $key , $opțiuni = 0 , şir $iv , şir $tag = NUL , şir $ tu , int $tag_length = 16 )
  • $date: Șirul sau datele pe care doriți să le criptați.
  • $metoda: Metoda de criptare sau cifrarea pe care doriți să o utilizați. Puteți obține o listă a metodelor de cifrare acceptate utilizând openssl_get_cipher_methods()
  • $key: Cheia de criptare care va fi folosită pentru a cripta datele. Ar trebui să fie un șir de lungime corespunzătoare și aleatoriu, bazat pe metoda de cifrare aleasă.
  • $opțiuni: Un parametru opțional care poate include semnalizatoare suplimentare pentru anumite opțiuni de criptare. Puteți combina steaguri folosind pe biți SAU (|) Steaguri comune includ OPENSSL_RAW_DATA și OPENSSL_ZERO_PADDING .
  • $iv: Vectorul de inițializare (iv) utilizat pentru criptare; ar trebui să fie o valoare aleatorie și unică, furnizată ca șir.
  • $tag: Un parametru opțional utilizat pentru modurile de criptare AEAD (Encryption Authenticated with Associated Data), cum ar fi GCM (Galois/Counter Mode) sau CCM (Counter with CBC-MAC). Acesta stochează eticheta de autentificare generată în timpul criptării.
  • Ta: Date autentificate suplimentare care pot fi utilizate pentru modurile de criptare AEAD.
  • $tag_length: Lungimea etichetei de autentificare. Pentru modul GCM, lungimea etichetei variază de la 4 la 16 octeți.

De exemplu:


$șir_simplu = „Bine ați venit la Linuxhint \n ' ;
ecou „Șir original:” . $șir_simplu ;
$cifrare = „AES-128-CTR” ;
$iv_length = openssl_cipher_iv_length ( $cifrare ) ;
$opțiuni = 0 ;
$criptare_iv = „1234567891011121” ;
$encryption_key = 'Linux' ;
$criptare = openssl_encrypt ( $șir_simplu , $cifrare ,
$encryption_key , $opțiuni , $criptare_iv ) ;
ecou „Șir criptat:” . $criptare . ' \n ' ;
?>

Codul declară mai întâi textul de bază „Bine ați venit la Linuxhint” și folosește comanda echo pentru a o afișa. Apoi, specifică algoritmul de criptare care trebuie utilizat, AES-128-CTR . De asemenea, folosește openssl_cipher_iv_length() funcția pentru a calcula dimensiunea vector de inițializare (IV) necesare pentru acest cifr.



Codul stabilește criptarea iv valoare pentru „1234567891011121” și cheia de criptare pentru „Linux” . Șirul criptat este apoi afișat utilizând comanda echo odată ce criptarea a fost finalizată folosind openssl_encrypt() funcţie. Datorită vectorului de inițializare aleatorie utilizat pentru criptare, șirul final criptat va varia de fiecare dată.

Decriptați un șir folosind funcția openssl_decrypt().

Pentru a decripta un șir în PHP, puteți utiliza openssl_decrypt() funcţie. Această funcție preia datele criptate, metoda de criptare și cheia ca intrări și returnează textul simplu decriptat.

Sintaxa pentru openssl_decrypt() metoda este:

șir openssl_decrypt ( şir $date , şir $metoda , şir $key , int $opțiuni = 0 , şir $iv , şir $tag , şir $ tu )

Argumentele transmise funcției sunt:

  • $date: Șirul sau datele criptate pe care doriți să le decriptați.
  • $metoda: Metoda de criptare sau cifrarea utilizată în timpul criptării. Puteți obține o listă a metodelor de cifrare acceptate utilizând openssl_get_cipher_methods()
  • $key: Cheia de criptare care a fost folosită pentru a cripta datele. Ar trebui să se potrivească cu cheia utilizată în timpul criptării.
  • $opțiuni: Un parametru opțional care poate include steaguri suplimentare pentru anumite opțiuni de decriptare. Puteți combina steaguri folosind operatorul SAU (|) pe biți. Steaguri comune includ OPENSSL_RAW_DATA și OPENSSL_ZERO_PADDING .
  • $iv: The vector de inițializare (IV) utilizat în timpul criptării. Ar trebui să fie același IV care a fost folosit în timpul criptării și transmis ca șir.
  • $tag: Eticheta de autentificare pentru modurile de criptare AEAD (Encryption Authenticated with Associated Data), cum ar fi GCM (Galois/Counter Mode) sau CCM (Counter with CBC-MAC). Dacă autentificarea eșuează, openssl_decrypt() va returna FALSE.
  • Ta: Date autentificate suplimentare care au fost utilizate în timpul criptării pentru modurile de criptare AEAD.

Valoare returnată: Dacă are succes, returnează șirul decriptat; în caz contrar, returnează FALSE.

De exemplu:


$șir_criptat = „rKaeYsYaNjkVbRPmJizrdX0xutLE” ;
ecou „Șir criptat:” . $șir_criptat . ' \n ' ;
$decriptare_iv = „1234567891011121” ;
$cifrare = „AES-128-CTR” ;
$opțiuni = 0 ;
$decryption_key = 'Linux' ;
$decriptare = openssl_decrypt ( $șir_criptat , $cifrare ,
$decryption_key , $opțiuni , $decriptare_iv ) ;
ecou „Șir decriptat:” . $decriptare ;
?>

Lungimea vectorului din acest cod este calculată folosind openssl_cipher_iv_length() funcția și aceiași parametri de criptare iv și cheie sunt utilizați în timpul criptării. Algoritmul de cifrare este definit ca AES-128-CTR .

Șirul criptat anterior este decriptat folosind algoritmul de cifrare, cheia de criptare, setările și valorile IV de către openssl_decrypt() funcţie. Textul decriptat rezultat este apoi afișat folosind comanda echo.

Concluzie

Crearea de site-uri web implică adesea criptarea și decriptarea date. Folosind criptarea pentru a proteja datele sensibile, puteți evita expunerea utilizatorilor la furtul de identitate, frauda și alte amenințări de securitate. Șirurile în PHP pot fi criptate și decriptate de funcții openssl_encrypt() și openssl_decrypt() funcții. Utilizând cu atenție algoritmul și cheia de criptare, puteți crea un sistem robust și sigur pentru gestionarea datelor sensibile în aplicațiile dvs. PHP.