Kā šifrēt un atšifrēt virkni PHP?

Ka Sifret Un Atsifret Virkni Php



Šifrēšana ir process, kurā dati tiek pārvērsti slepenā kodā vai formātā, kas nav saprotams ikvienam, kam nav atslēgas to atšifrēšanai. Atšifrēšana ir procedūra šīs informācijas iegūšanai un atgriešanai sākotnējā, lasāmā formātā. PHP, šifrēšana, un atšifrēšana var izmantot, lai aizsargātu sensitīvus datus, piemēram, paroles, kredītkaršu informāciju un citus personas datus.

The šifrēšana algoritmam ir jāuzņem datu virkne, kuru vēlaties šifrēt, un jāizmanto izvēlētā šifrēšanas metode datu šifrēšanai. Pēc tam algoritmam ir jāatgriež šifrētie dati tādā formātā, ko varat saglabāt datu bāzē vai failā.

Uz atšifrēt datus, izmantojiet to pašu šifrēšanas metodi, lai atšifrētu datus, kas tika izmantoti to šifrēšanai. Tas nozīmē, ka atslēga būs kaut kur jāsaglabā, lai vēlāk varētu to izmantot datu atšifrēšanai.







Kā šifrēt un atšifrēt PHP virkni?

PHP virkne var būt šifrēts un atšifrēts izmantojot openssl_encrpyt() un openssl_decrypt() metodes, attiecīgi.



Šifrējiet virkni, izmantojot funkciju openssl_encrypt().

Uz šifrēt virkni PHP, izmantojot openssl_encrypt() funkciju, jums ir jānorāda vienkāršā teksta virkne, šifrēšanas metode un atslēga. Funkcija atgriezīs šifrētos datus, kurus pēc tam varat droši uzglabāt vai pārsūtīt.



Sintakse priekš openssl_encrypt() metode ir:





virkne openssl_encrypt ( virkne $dati , virkne $metode , virkne $key , $options = 0 , virkne $iv , virkne $tag = NULL , virkne $ jums , starpt $tag_length = 16 )
  • $dati: Virkne vai dati, ko vēlaties šifrēt.
  • $metode: Šifrēšanas metode vai šifrs, kuru vēlaties izmantot. Jūs varat iegūt atbalstīto šifrēšanas metožu sarakstu, izmantojot openssl_get_cipher_methods()
  • $key: Šifrēšanas atslēga, kas tiks izmantota datu šifrēšanai. Tai ir jābūt atbilstoša garuma un nejaušības virknei, kuras pamatā ir izvēlētā šifrēšanas metode.
  • $options: Papildu parametrs, kas var ietvert papildu karogus konkrētām šifrēšanas opcijām. Jūs varat apvienot karogus, izmantojot bitiem VAI (|) Kopējie karogi ietver OPENSSL_RAW_DATA un OPENSSL_ZERO_PADDING .
  • $iv: Inicializācijas vektors (iv), ko izmanto šifrēšanai; tai ir jābūt nejaušai un unikālai vērtībai, kas tiek nodrošināta kā virkne.
  • $tag: Papildu parametrs, ko izmanto AEAD (autentificēta šifrēšana ar saistītajiem datiem) šifrēšanas režīmiem, piemēram, GCM (Galois/Counter Mode) vai CCM (skaitītājs ar CBC-MAC). Tas saglabā autentifikācijas tagu, kas ģenerēts šifrēšanas laikā.
  • Jūsu: Papildu autentificēti dati, ko var izmantot AEAD šifrēšanas režīmiem.
  • $tag_length: Autentifikācijas taga garums. GMZ režīmā taga garums ir no 4 līdz 16 baitiem.

Piemēram:


$vienkāršā_virkne = 'Laipni lūdzam Linuxhint \n ' ;
atbalss 'Oriģinālā virkne:' . $vienkāršā_virkne ;
$šifrēšana = 'AES-128-VKS' ;
$iv_garums = openssl_cipher_iv_length ( $šifrēšana ) ;
$options = 0 ;
$šifrēšana_iv = “1234567891011121” ;
$šifrēšanas_atslēga = 'Linux' ;
$šifrēšana = openssl_encrypt ( $vienkāršā_virkne , $šifrēšana ,
$šifrēšanas_atslēga , $options , $šifrēšana_iv ) ;
atbalss 'Šifrētā virkne:' . $šifrēšana . ' \n ' ;
?>

Kods vispirms deklarē pamattekstu “Laipni lūdzam Linuxhint” un izmanto komandu echo, lai to parādītu. Pēc tam tas norāda izmantojamo šifrēšanas algoritmu, AES-128-VKS . Tas izmanto arī openssl_cipher_iv_length() funkcija, lai aprēķinātu izmēru inicializācijas vektors (IV) nepieciešams šim šifram.



Kods nosaka šifrēšanu iv vērtību uz “1234567891011121” un šifrēšanas atslēgu 'Linux' . Pēc tam šifrētā virkne tiek parādīta, izmantojot echo komandu, kad šifrēšana ir pabeigta, izmantojot openssl_encrypt() funkciju. Tā kā šifrēšanai tiek izmantots nejaušs inicializācijas vektors, galīgā šifrētā virkne katru reizi mainīsies.

Atšifrēt virkni, izmantojot openssl_decrypt() funkciju

Lai atšifrētu virkni PHP, varat izmantot openssl_decrypt() funkciju. Šī funkcija izmanto šifrētos datus, šifrēšanas metodi un atslēgu kā ievades datus un atgriež atšifrēto vienkāršo tekstu.

Sintakse priekš openssl_decrypt() metode ir:

virkne openssl_decrypt ( virkne $dati , virkne $metode , virkne $key , starpt $options = 0 , virkne $iv , virkne $tag , virkne $ jums )

Funkcijai nodotie argumenti ir:

  • $dati: Šifrētā virkne vai dati, kurus vēlaties atšifrēt.
  • $metode: Šifrēšanas laikā izmantotā šifrēšanas metode vai šifrs. Jūs varat iegūt atbalstīto šifrēšanas metožu sarakstu, izmantojot openssl_get_cipher_methods()
  • $key: Šifrēšanas atslēga, kas tika izmantota datu šifrēšanai. Tai jāatbilst šifrēšanas laikā izmantotajai atslēgai.
  • $options: Papildu parametrs, kas var ietvert papildu karogus konkrētām atšifrēšanas opcijām. Varat apvienot karogus, izmantojot bitu VAI (|) operatoru. Kopējie karogi ietver OPENSSL_RAW_DATA un OPENSSL_ZERO_PADDING .
  • $iv: The inicializācijas vektors (IV) izmanto šifrēšanas laikā. Tam vajadzētu būt tam pašam IV, kas tika izmantots šifrēšanas laikā un tika nodots kā virkne.
  • $tag: Autentifikācijas tags AEAD (autentificēta šifrēšana ar saistītajiem datiem) šifrēšanas režīmiem, piemēram, GCM (Galois/Counter Mode) vai CCM (skaitītājs ar CBC-MAC). Ja autentifikācija neizdodas, openssl_decrypt() atgriezīs FALSE.
  • Jūsu: Papildu autentificēti dati, kas tika izmantoti šifrēšanas laikā AEAD šifrēšanas režīmiem.

Atgriešanas vērtība: Ja tas izdodas, tas atgriež atšifrēto virkni; pretējā gadījumā tas atgriež FALSE.

Piemēram:


$šifrēta_virkne = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
atbalss 'Šifrētā virkne:' . $šifrēta_virkne . ' \n ' ;
$decryption_iv = “1234567891011121” ;
$šifrēšana = 'AES-128-VKS' ;
$options = 0 ;
$atšifrēšanas_atslēga = 'Linux' ;
$atšifrēšana = openssl_decrypt ( $šifrēta_virkne , $šifrēšana ,
$atšifrēšanas_atslēga , $options , $decryption_iv ) ;
atbalss 'Atšifrētā virkne:' . $atšifrēšana ;
?>

Vektora garums šajā kodā tiek aprēķināts, izmantojot openssl_cipher_iv_length() funkcija, un šifrēšanas laikā tiek izmantoti tie paši šifrēšanas iv un atslēgas parametri. Šifrēšanas algoritms ir definēts kā AES-128-VKS .

Iepriekš šifrētā virkne tiek atšifrēta, izmantojot šifrēšanas algoritmu, šifrēšanas atslēgu, iestatījumus un IV vērtības. openssl_decrypt() funkciju. Rezultātā atšifrētais teksts tiek parādīts, izmantojot echo komandu.

Secinājums

Vietņu izveide bieži ietver šifrēšana un atšifrēšana datus. Izmantojot šifrēšanu, lai aizsargātu sensitīvus datus, varat izvairīties no lietotāju pakļaušanas identitātes zādzībai, krāpšanai un citiem drošības apdraudējumiem. PHP virknes var šifrēt un atšifrēt, izmantojot funkcijas openssl_encrypt() un openssl_decrypt() funkcijas. Rūpīgi izmantojot šifrēšanas algoritmu un atslēgu, jūs varat izveidot stabilu un drošu sistēmu sensitīvu datu apstrādei jūsu PHP lietojumprogrammās.