Kaip užšifruoti ir iššifruoti eilutę PHP?

Kaip Uzsifruoti Ir Issifruoti Eilute Php



Šifravimas yra duomenų konvertavimo į slaptą kodą arba formatą, kuris nesuprantamas niekam, neturinčiam rakto jiems iššifruoti, procesas. Iššifravimas yra tos informacijos paėmimo ir grąžinimo į pradinį, skaitomą formatą procedūra. PHP, šifravimas, ir iššifravimas gali būti naudojamas apsaugoti jautrius duomenis, tokius kaip slaptažodžiai, kredito kortelės informacija ir kiti asmeniniai duomenys.

The šifravimas algoritmas turėtų paimti duomenų eilutę, kurią norite užšifruoti, ir naudoti pasirinktą šifravimo metodą duomenims užšifruoti. Tada algoritmas turėtų grąžinti užšifruotus duomenis tokiu formatu, kurį galite saugoti duomenų bazėje arba faile.

Į iššifruoti duomenis, turėtumėte naudoti tą patį šifravimo metodą, kad iššifruotumėte duomenis, kurie buvo naudojami jiems užšifruoti. Tai reiškia, kad raktą turėsite kažkur saugoti, kad vėliau galėtumėte jį naudoti duomenims iššifruoti.







Kaip užšifruoti ir iššifruoti PHP eilutę?

PHP eilutė gali būti užšifruotas ir iššifruotas naudojant openssl_encrpyt() ir openssl_decrypt() metodus, atitinkamai.



Šifruoti eilutę naudojant openssl_encrypt() funkciją

Į užšifruoti eilutę PHP naudojant openssl_encrypt() funkciją, turite pateikti paprasto teksto eilutę, šifravimo metodą ir raktą. Funkcija grąžins užšifruotus duomenis, kuriuos galėsite saugoti arba saugiai perduoti.



Sintaksė skirta openssl_encrypt() metodas yra:





eilutė openssl_encrypt ( styga $duomenys , styga $metodas , styga $raktas , $options = 0 , styga $iv , styga $tag = NULL , styga $ tu , tarpt $tag_length = 16 )
  • $duomenys: Eilutę arba duomenis, kuriuos norite užšifruoti.
  • $metodas: Šifravimo metodas arba šifras, kurį norite naudoti. Palaikomų šifravimo metodų sąrašą galite gauti naudodami openssl_get_cipher_methods()
  • $key: Šifravimo raktas, kuris bus naudojamas duomenims užšifruoti. Tai turėtų būti tinkamo ilgio ir atsitiktinumo eilutė, pagrįsta pasirinktu šifravimo metodu.
  • $options: Pasirenkamas parametras, į kurį gali būti įtrauktos papildomos žymos konkrečioms šifravimo parinktims. Galite sujungti vėliavėles naudodami bitais ARBA (|) Įprastos vėliavos apima OPENSSL_RAW_DATA ir OPENSSL_ZERO_PADDING .
  • $iv: Inicijavimo vektorius (iv), naudojamas šifravimui; tai turėtų būti atsitiktinė ir unikali reikšmė, pateikta kaip eilutė.
  • $tag: Pasirenkamas parametras, naudojamas AEAD (autentifikuotas šifravimas su susijusiais duomenimis) šifravimo režimams, pvz., GCM (Galois / skaitiklio režimas) arba CCM (skaitiklis su CBC-MAC). Jis saugo autentifikavimo žymą, sugeneruotą šifravimo metu.
  • Tavo: Papildomi autentifikuoti duomenys, kuriuos galima naudoti AEAD šifravimo režimams.
  • $tag_length: Autentifikavimo žymos ilgis. GCM režimu žymos ilgis svyruoja nuo 4 iki 16 baitų.

Pavyzdžiui:


$paprasta_stringa = „Sveiki atvykę į Linuxhint \n ;
aidas 'Original String:' . $paprasta_stringa ;
$šifravimas = 'AES-128-CTR' ;
$iv_ilgis = openssl_cipher_iv_length ( $šifravimas ) ;
$options = 0 ;
$šifravimas_iv = „1234567891011121“ ;
$šifravimo_raktas = 'Linux' ;
$šifravimas = openssl_encrypt ( $paprasta_stringa , $šifravimas ,
$šifravimo_raktas , $options , $šifravimas_iv ) ;
aidas 'Šifruota eilutė:' . $šifravimas . \n ;
?>

Kodas pirmiausia deklaruoja pagrindinį tekstą „Sveiki atvykę į Linuxhint“ ir jai parodyti naudoja komandą echo. Tada jis nurodo naudotiną šifravimo algoritmą, AES-128-PR . Jis taip pat naudoja openssl_cipher_iv_length() funkcija apskaičiuoti dydį inicijavimo vektorius (IV) reikalingas šiam šifrui.



Kodas nustato šifravimą iv vertė į „1234567891011121“ ir šifravimo raktą 'Linux' . Užšifruota eilutė rodoma naudojant echo komandą, kai šifravimas baigiamas naudojant openssl_encrypt() funkcija. Dėl šifravimui naudojamo atsitiktinio inicijavimo vektoriaus galutinė užšifruota eilutė kaskart skirsis.

Iššifruoti eilutę naudojant openssl_decrypt() funkciją

Norėdami iššifruoti eilutę PHP, galite naudoti openssl_decrypt() funkcija. Ši funkcija naudoja užšifruotus duomenis, šifravimo metodą ir raktą kaip įvestį ir grąžina iššifruotą paprastą tekstą.

Sintaksė skirta openssl_decrypt() metodas yra:

eilutė openssl_decrypt ( styga $duomenys , styga $metodas , styga $raktas , tarpt $options = 0 , styga $iv , styga $tag , styga $ tu )

Funkcijai perduoti argumentai yra šie:

  • $duomenys: Šifruota eilutė arba duomenys, kuriuos norite iššifruoti.
  • $metodas: Šifravimo metu naudojamas šifravimo metodas arba šifras. Palaikomų šifravimo metodų sąrašą galite gauti naudodami openssl_get_cipher_methods()
  • $key: Šifravimo raktas, kuris buvo naudojamas duomenims užšifruoti. Jis turi atitikti šifravimo metu naudojamą raktą.
  • $options: Pasirenkamas parametras, į kurį gali būti įtrauktos papildomos vėliavėlės konkrečioms iššifravimo parinktims. Galite sujungti vėliavėles naudodami bitų OR (|) operatorių. Įprastos vėliavos apima OPENSSL_RAW_DATA ir OPENSSL_ZERO_PADDING .
  • $iv: The inicijavimo vektorius (IV) naudojamas šifravimo metu. Tai turėtų būti ta pati IV, kuri buvo naudojama šifruojant ir perduota kaip eilutė.
  • $tag: AEAD (autentifikuoto šifravimo su susijusiais duomenimis) šifravimo režimų, pvz., GCM (Galois / skaitiklio režimas) arba CCM (skaitiklis su CBC-MAC), autentifikavimo žyma. Jei autentifikavimas nepavyksta, openssl_decrypt() grąžins FALSE.
  • Tavo: Papildomi autentifikuoti duomenys, kurie buvo naudojami šifruojant AEAD šifravimo režimus.

Grąžinimo vertė: Jei pavyksta, ji grąžina iššifruotą eilutę; kitu atveju grąžinama FALSE.

Pavyzdžiui:


$šifruota_styga = „rKaeYsYaNjkVbRPmJizrdX0xutLE“ ;
aidas 'Šifruota eilutė:' . $šifruota_styga . \n ;
$decryption_iv = „1234567891011121“ ;
$šifravimas = 'AES-128-CTR' ;
$options = 0 ;
$dešifravimo_raktas = 'Linux' ;
$ iššifravimas = openssl_decrypt ( $šifruota_styga , $šifravimas ,
$dešifravimo_raktas , $options , $decryption_iv ) ;
aidas „Iššifruota eilutė:“ . $ iššifravimas ;
?>

Vektoriaus ilgis šiame kode apskaičiuojamas naudojant openssl_cipher_iv_length() funkcija, o šifravimo metu naudojami tie patys šifravimo iv ir rakto parametrai. Šifravimo algoritmas apibrėžiamas kaip AES-128-PR .

Anksčiau užšifruota eilutė iššifruojama naudojant šifravimo algoritmą, šifravimo raktą, nustatymus ir IV reikšmes. openssl_decrypt() funkcija. Tada gautas iššifruotas tekstas rodomas naudojant echo komandą.

Išvada

Svetainių kūrimas dažnai apima šifravimas ir iššifravimas duomenis. Naudodami šifravimą slaptiems duomenims apsaugoti, galite išvengti tapatybės vagystės, sukčiavimo ir kitų saugumo grėsmių. PHP eilutes galima užšifruoti ir iššifruoti naudojant funkcijas openssl_encrypt() ir openssl_decrypt() funkcijas. Kruopščiai naudodami šifravimo algoritmą ir raktą, galite sukurti patikimą ir saugią sistemą, skirtą jautriems duomenims tvarkyti savo PHP programose.