Kako šifrirati i dešifrirati niz u PHP-u?

Kako Sifrirati I Desifrirati Niz U Php U



Šifriranje je proces pretvaranja podataka u tajni kod ili format koji nije razumljiv nikome tko nema ključ za njegovo dekodiranje. Dešifriranje je postupak za preuzimanje tih informacija i njihovo vraćanje u izvorni, čitljiv format. U PHP-u, šifriranje, i dešifriranje može se koristiti za zaštitu osjetljivih podataka, kao što su lozinke, podaci o kreditnoj kartici i drugi osobni podaci.

The šifriranje algoritam bi trebao uzeti niz podataka koje želite šifrirati i koristiti odabranu metodu šifriranja za šifriranje podataka. Algoritam bi tada trebao vratiti šifrirane podatke u formatu koji možete pohraniti u bazu podataka ili datoteku.

Do dešifrirati podatke, trebali biste upotrijebiti istu metodu šifriranja za dešifriranje podataka koja je korištena za njihovo šifriranje. To znači da ćete morati negdje pohraniti ključ kako biste ga kasnije mogli koristiti za dekodiranje podataka.







Kako šifrirati i dešifrirati PHP niz?

PHP niz može biti šifrirano i dešifrirano koristiti openssl_encrpyt() i openssl_decrypt() metode, odnosno.



Šifrirajte niz pomoću funkcije openssl_encrypt().

Do šifrirati niz u PHP-u koristeći openssl_encrypt() morate unijeti niz otvorenog teksta, metodu šifriranja i ključ. Funkcija će vratiti šifrirane podatke koje zatim možete sigurno pohraniti ili prenijeti.



Sintaksa za openssl_encrypt() metoda je:





niz openssl_encrypt ( niz $podaci , niz $metoda , niz $ključ , $opcije = 0 , niz $iv , niz oznaka $ = NULL , niz $ ti , int $tag_length = 16 )
  • $podaci: Niz ili podaci koje želite šifrirati.
  • $metoda: Metoda šifriranja ili šifra koju želite koristiti. Možete dobiti popis podržanih metoda šifriranja korištenjem openssl_get_cipher_methods()
  • $ključ: Ključ za šifriranje koji će se koristiti za šifriranje podataka. To bi trebao biti niz odgovarajuće duljine i slučajnosti, na temelju odabrane metode šifriranja.
  • $opcije: Neobavezni parametar koji može uključivati ​​dodatne oznake za određene opcije šifriranja. Zastavice možete kombinirati pomoću bitno ILI (|) Uobičajene zastave uključuju OPENSSL_RAW_DATA i OPENSSL_ZERO_PADDING .
  • $iv: Inicijalizacijski vektor (iv) koji se koristi za enkripciju; trebala bi biti nasumična i jedinstvena vrijednost, navedena kao niz.
  • $tag: Neobavezni parametar koji se koristi za načine šifriranja AEAD (Authenticated Encryption with Associated Data), kao što je GCM (Galois/Counter Mode) ili CCM (Counter with CBC-MAC). Pohranjuje oznaku za provjeru autentičnosti generiranu tijekom enkripcije.
  • Vaše: Dodatni autentificirani podaci koji se mogu koristiti za AEAD načine šifriranja.
  • $tag_length: Duljina oznake za provjeru autentičnosti. Za GCM način rada, duljina oznake kreće se od 4 do 16 bajtova.

Na primjer:


$jednostavni_string = 'Dobro došli u Linuxhint \n ' ;
jeka 'Izvorni niz: ' . $jednostavni_string ;
$šifriranje = 'AES-128-CTR' ;
$iv_duljina = openssl_cipher_iv_length ( $šifriranje ) ;
$opcije = 0 ;
$enkripcija_iv = '1234567891011121' ;
$ključ_šifriranja = 'Linux' ;
$šifriranje = openssl_encrypt ( $jednostavni_string , $šifriranje ,
$ključ_šifriranja , $opcije , $enkripcija_iv ) ;
jeka 'Šifrirani niz: ' . $šifriranje . ' \n ' ;
?>

Kod prvo deklarira osnovni tekst “Dobro došli u Linuxhint” i koristi naredbu echo za prikaz. Zatim specificira algoritam šifriranja koji će se koristiti, AES-128-CTR . Također koristi openssl_cipher_iv_length() funkcija za izračunavanje veličine inicijalizacijski vektor (IV) potrebnih za ovu šifru.



Kod postavlja enkripciju iv vrijednost za '1234567891011121' i ključ za šifriranje 'Linux' . Šifrirani niz se zatim prikazuje korištenjem naredbe echo nakon što je šifriranje dovršeno korištenjem openssl_encrypt() funkcija. Zbog nasumičnog vektora inicijalizacije koji se koristi za enkripciju, konačni šifrirani niz će varirati svaki put.

Dešifriranje niza pomoću funkcije openssl_decrypt().

Za dešifriranje niza u PHP-u, možete koristiti openssl_decrypt() funkcija. Ova funkcija uzima šifrirane podatke, metodu šifriranja i ključ kao ulaze i vraća dešifrirani otvoreni tekst.

Sintaksa za openssl_decrypt() metoda je:

niz openssl_decrypt ( niz $podaci , niz $metoda , niz $ključ , int $opcije = 0 , niz $iv , niz oznaka $ , niz $ ti )

Argumenti proslijeđeni funkciji su:

  • $podaci: Šifrirani niz ili podaci koje želite dešifrirati.
  • $metoda: Metoda šifriranja ili šifra korištena tijekom šifriranja. Možete dobiti popis podržanih metoda šifriranja korištenjem openssl_get_cipher_methods()
  • $ključ: Ključ za šifriranje koji je korišten za šifriranje podataka. Trebao bi odgovarati ključu korištenom tijekom enkripcije.
  • $opcije: Neobavezni parametar koji može uključivati ​​dodatne oznake za određene opcije dešifriranja. Možete kombinirati zastavice korištenjem bitovnog OR (|) operatora. Uobičajene zastave uključuju OPENSSL_RAW_DATA i OPENSSL_ZERO_PADDING .
  • $iv: The inicijalizacijski vektor (IV) koristi se tijekom enkripcije. To bi trebao biti isti IV koji je korišten tijekom enkripcije i proslijeđen kao niz.
  • $tag: Oznaka provjere autentičnosti za AEAD (Authenticated Encryption with Associated Data) načine šifriranja, kao što je GCM (Galois/Counter Mode) ili CCM (Counter with CBC-MAC). Ako provjera autentičnosti ne uspije, openssl_decrypt() će vratiti FALSE.
  • Vaše: Dodatni autentificirani podaci koji su korišteni tijekom enkripcije za AEAD načine šifriranja.

Povratna vrijednost: Ako je uspješan, vraća dešifrirani niz; inače vraća FALSE.

Na primjer:


$encrypted_string = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
jeka 'Šifrirani niz: ' . $encrypted_string . ' \n ' ;
$dešifriranje_iv = '1234567891011121' ;
$šifriranje = 'AES-128-CTR' ;
$opcije = 0 ;
$dešifrirajući_ključ = 'Linux' ;
$dešifriranje = openssl_dekriptirati ( $encrypted_string , $šifriranje ,
$dešifrirajući_ključ , $opcije , $dešifriranje_iv ) ;
jeka 'Dešifrirani niz: ' . $dešifriranje ;
?>

Duljina vektora u ovom kodu izračunava se pomoću openssl_cipher_iv_length() funkcija, a isti parametri šifriranja iv i ključa koriste se tijekom šifriranja. Algoritam šifriranja je definiran kao AES-128-CTR .

Prethodno šifrirani niz dekriptira se pomoću algoritma za šifriranje, ključa za šifriranje, postavki i IV vrijednosti pomoću openssl_decrypt() funkcija. Dobiveni dešifrirani tekst zatim se prikazuje pomoću naredbe echo.

Zaključak

Izrada web stranica često uključuje šifriranje i dešifriranje podaci. Korištenjem enkripcije za zaštitu osjetljivih podataka možete izbjeći izlaganje svojih korisnika krađi identiteta, prijevari i drugim sigurnosnim prijetnjama. Nizovi u PHP-u mogu se šifrirati i dešifrirati funkcijama openssl_encrypt() i openssl_decrypt() funkcije. Pažljivom upotrebom algoritma za šifriranje i ključa možete stvoriti robustan i siguran sustav za rukovanje osjetljivim podacima u vašim PHP aplikacijama.