Kako šifrirati in dešifrirati niz v PHP?

Kako Sifrirati In Desifrirati Niz V Php



Šifriranje je proces pretvorbe podatkov v skrivno kodo ali obliko, ki ni razumljiva nikomur, ki nima ključa za dekodiranje. Dešifriranje je postopek za prevzem teh informacij in njihovo vrnitev v izvirno, berljivo obliko. V PHP, šifriranje, in dešifriranje se lahko uporablja za zaščito občutljivih podatkov, kot so gesla, podatki o kreditnih karticah in drugi osebni podatki.

The šifriranje algoritem mora sprejeti niz podatkov, ki jih želite šifrirati, in uporabiti izbrano metodo šifriranja za šifriranje podatkov. Algoritem bi moral nato vrniti šifrirane podatke v obliki, ki jo lahko shranite v zbirko podatkov ali datoteko.

Za dešifrirati podatkov, morate za dešifriranje podatkov uporabiti isto metodo šifriranja, kot je bila uporabljena za šifriranje. To pomeni, da boste morali ključ nekje shraniti, da ga boste lahko kasneje uporabili za dekodiranje podatkov.







Kako šifrirati in dešifrirati niz PHP?

Niz PHP je lahko šifrirano in dešifrirano uporabljati openssl_encrpyt() in openssl_decrypt() metode oz.



Šifrirajte niz s funkcijo openssl_encrypt().

Za šifrirati niz v PHP z uporabo openssl_encrypt() morate zagotoviti niz z navadnim besedilom, način šifriranja in ključ. Funkcija bo vrnila šifrirane podatke, ki jih lahko nato varno shranite ali prenesete.



Sintaksa za openssl_encrypt() metoda je:





niz openssl_encrypt ( vrvica $podatki , vrvica $metoda , vrvica $ključ , možnosti $ = 0 , vrvica $iv , vrvica oznaka $ = NIČ , vrvica $ ti , int $tag_length = 16 )
  • $podatki: Niz ali podatek, ki ga želite šifrirati.
  • $metoda: Metoda šifriranja ali šifra, ki jo želite uporabiti. Seznam podprtih metod šifriranja lahko dobite z uporabo openssl_get_cipher_methods()
  • $key: Šifrirni ključ, ki bo uporabljen za šifriranje podatkov. To naj bo niz ustrezne dolžine in naključnosti glede na izbrano metodo šifriranja.
  • $možnosti: Izbirni parameter, ki lahko vključuje dodatne zastavice za določene možnosti šifriranja. Zastavice lahko kombinirate z bitno ALI (|) Skupne zastave vključujejo OPENSSL_RAW_DATA in OPENSSL_ZERO_PADDING .
  • $iv: Inicializacijski vektor (iv), uporabljen za šifriranje; mora biti naključna in edinstvena vrednost, navedena kot niz.
  • $tag: Izbirni parameter, ki se uporablja za načine šifriranja AEAD (Authenticated Encryption with Associated Data), kot je GCM (Galois/Counter Mode) ali CCM (Counter with CBC-MAC). Shranjuje oznako za preverjanje pristnosti, ustvarjeno med šifriranjem.
  • Vaše: Dodatni overjeni podatki, ki jih je mogoče uporabiti za načine šifriranja AEAD.
  • $tag_length: Dolžina oznake za preverjanje pristnosti. Za način GCM je dolžina oznake od 4 do 16 bajtov.

Na primer:


$simple_string = 'Dobrodošli v Linuxhintu \n ' ;
odmev 'Izvirni niz: ' . $simple_string ;
$šifriranje = 'AES-128-CTR' ;
$iv_dolžina = openssl_cipher_iv_length ( $šifriranje ) ;
možnosti $ = 0 ;
$encryption_iv = '1234567891011121' ;
$ šifrirni ključ = 'Linux' ;
$šifriranje = openssl_encrypt ( $simple_string , $šifriranje ,
$ šifrirni ključ , možnosti $ , $encryption_iv ) ;
odmev 'Šifrirani niz: ' . $šifriranje . ' \n ' ;
?>

Koda najprej deklarira osnovno besedilo “Dobrodošli v Linuxhintu” in za prikaz uporablja ukaz echo. Nato določi algoritem šifriranja, ki bo uporabljen, AES-128-CTR . Uporablja tudi openssl_cipher_iv_length() funkcijo za izračun velikosti inicializacijski vektor (IV) potrebno za to šifro.



Koda nastavi šifriranje iv vrednost za '1234567891011121' in šifrirni ključ za 'Linux' . Šifrirani niz se nato prikaže z ukazom echo, ko je šifriranje zaključeno z uporabo openssl_encrypt() funkcijo. Zaradi naključnega inicializacijskega vektorja, ki se uporablja za šifriranje, se končni šifrirani niz vsakič razlikuje.

Dešifrirajte niz s funkcijo openssl_decrypt().

Če želite dešifrirati niz v PHP, lahko uporabite openssl_decrypt() funkcijo. Ta funkcija vzame šifrirane podatke, metodo šifriranja in ključ kot vhodne podatke ter vrne dešifrirano odprto besedilo.

Sintaksa za openssl_decrypt() metoda je:

niz openssl_decrypt ( vrvica $podatki , vrvica $metoda , vrvica $ključ , int možnosti $ = 0 , vrvica $iv , vrvica oznaka $ , vrvica $ ti )

Argumenti, posredovani funkciji, so:

  • $podatki: Šifrirani niz ali podatki, ki jih želite dešifrirati.
  • $metoda: Metoda šifriranja ali šifra, uporabljena med šifriranjem. Seznam podprtih metod šifriranja lahko dobite z uporabo openssl_get_cipher_methods()
  • $key: Šifrirni ključ, ki je bil uporabljen za šifriranje podatkov. Ujemati se mora s ključem, uporabljenim med šifriranjem.
  • $možnosti: Izbirni parameter, ki lahko vključuje dodatne zastavice za določene možnosti dešifriranja. Zastavice lahko kombinirate z bitnim operatorjem ALI (|). Skupne zastave vključujejo OPENSSL_RAW_DATA in OPENSSL_ZERO_PADDING .
  • $iv: The inicializacijski vektor (IV) uporabljen med šifriranjem. Moral bi biti isti IV, ki je bil uporabljen med šifriranjem in posredovan kot niz.
  • $tag: Oznaka za preverjanje pristnosti za načine šifriranja AEAD (Authenticated Encryption with Associated Data), kot je GCM (Galois/Counter Mode) ali CCM (Counter with CBC-MAC). Če avtentikacija ne uspe, bo openssl_decrypt() vrnil FALSE.
  • Vaše: Dodatni overjeni podatki, ki so bili uporabljeni med šifriranjem za načine šifriranja AEAD.

Povratna vrednost: Če je uspešen, vrne dešifriran niz; sicer vrne FALSE.

Na primer:


$encrypted_string = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
odmev 'Šifrirani niz: ' . $encrypted_string . ' \n ' ;
$dešifriranje_iv = '1234567891011121' ;
$šifriranje = 'AES-128-CTR' ;
možnosti $ = 0 ;
$decryption_key = 'Linux' ;
$dešifriranje = openssl_decrypt ( $encrypted_string , $šifriranje ,
$decryption_key , možnosti $ , $dešifriranje_iv ) ;
odmev 'Dešifriran niz: ' . $dešifriranje ;
?>

Dolžina vektorja v tej kodi se izračuna z uporabo openssl_cipher_iv_length() funkcijo, med šifriranjem pa se uporabljajo isti šifrirni iv in ključni parametri. Algoritem šifriranja je definiran kot AES-128-CTR .

Prej šifriran niz je dešifriran z algoritmom za šifriranje, šifrirnim ključem, nastavitvami in vrednostmi IV. openssl_decrypt() funkcijo. Nastalo dešifrirano besedilo se nato prikaže z ukazom echo.

Zaključek

Izdelava spletnih strani pogosto vključuje šifriranje in dešifriranje podatke. Z uporabo šifriranja za zaščito občutljivih podatkov se lahko izognete izpostavljanju svojih uporabnikov kraji identitete, goljufijam in drugim varnostnim grožnjam. Nize v PHP je mogoče šifrirati in dešifrirati s funkcijami openssl_encrypt() in openssl_decrypt() funkcije. S skrbno uporabo šifrirnega algoritma in ključa lahko ustvarite robusten in varen sistem za obdelavo občutljivih podatkov v vaših PHP aplikacijah.