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.