Hoe string in PHP coderen en decoderen?

Hoe String In Php Coderen En Decoderen



Versleuteling is het proces van het omzetten van gegevens in een geheime code of een formaat dat onbegrijpelijk is voor iemand die niet de sleutel heeft om het te decoderen. decryptie is de procedure om die informatie te nemen en terug te brengen naar het oorspronkelijke, leesbare formaat. PHP, encryptie, En decodering kan worden gebruikt om gevoelige gegevens te beschermen, zoals wachtwoorden, creditcardgegevens en andere persoonlijke gegevens.

De encryptie algoritme moet een reeks gegevens opnemen die u wilt coderen en de gekozen coderingsmethode gebruiken om de gegevens te coderen. Het algoritme moet dan de versleutelde gegevens retourneren in een indeling die u in een database of bestand kunt opslaan.

Naar decoderen de gegevens, moet u dezelfde versleutelingsmethode gebruiken om de gegevens te ontsleutelen die werden gebruikt om deze te versleutelen. Dit betekent dat u de sleutel ergens moet opslaan, zodat u deze later kunt gebruiken om de gegevens te decoderen.







Hoe een PHP-string coderen en decoderen?

Een PHP-string kan zijn versleuteld En gedecodeerd de ... gebruiken openssl_encrpyt() En openssl_decrypt() methoden, respectievelijk.



Versleutel een tekenreeks met behulp van de openssl_encrypt()-functie

Naar versleutel een string in PHP met behulp van de openssl_encrypt() functie, moet u de tekenreeks in leesbare tekst, de coderingsmethode en een sleutel opgeven. De functie retourneert de versleutelde gegevens, die u vervolgens veilig kunt opslaan of verzenden.



De syntaxis voor openssl_encrypt() methode is:





string openssl_encrypt ( snaar $ gegevens , snaar $ methode , snaar $ sleutel , $opties = 0 , snaar $iv , snaar $label = NUL , snaar $ jij , int $tag_lengte = 16 )
  • $ gegevens: De tekenreeks of gegevens die u wilt versleutelen.
  • $methode: De coderingsmethode of het cijfer dat u wilt gebruiken. U kunt een lijst met ondersteunde coderingsmethoden verkrijgen door de openssl_get_cipher_methods()
  • $ sleutel: De coderingssleutel die wordt gebruikt om de gegevens te coderen. Het moet een string zijn van de juiste lengte en willekeur, gebaseerd op de gekozen cijfermethode.
  • $ opties: Een optionele parameter die extra vlaggen kan bevatten voor specifieke coderingsopties. U kunt vlaggen combineren met de bitsgewijs OF (|) Gemeenschappelijke vlaggen omvatten OPENSSL_RAW_DATA En OPENSSL_ZERO_PADDING .
  • $iv: De initialisatievector (iv) die wordt gebruikt voor codering; het moet een willekeurige en unieke waarde zijn, geleverd als een tekenreeks.
  • $tag: Een optionele parameter die wordt gebruikt voor AEAD-coderingsmodi (Authenticated Encryption with Associated Data), zoals GCM (Galois/Counter Mode) of CCM (Counter with CBC-MAC). Het slaat de authenticatietag op die tijdens de codering is gegenereerd.
  • Jouw: Aanvullende geverifieerde gegevens die kunnen worden gebruikt voor AEAD-coderingsmodi.
  • $tag_length: De lengte van de authenticatietag. Voor de GCM-modus varieert de taglengte van 4 tot 16 bytes.

Bijvoorbeeld:


$simple_tekenreeks = 'Welkom bij Linuxhint \N ' ;
echo 'Originele tekenreeks: ' . $simple_tekenreeks ;
$codering = 'AES-128-CTR' ;
$iv_lengte = openssl_cipher_iv_length ( $codering ) ;
$opties = 0 ;
$encryptie_iv = '1234567891011121' ;
$encryptie_sleutel = 'Linux' ;
$encryptie = openssl_encrypt ( $simple_tekenreeks , $codering ,
$encryptie_sleutel , $opties , $encryptie_iv ) ;
echo 'Gecodeerde tekenreeks: ' . $encryptie . ' \N ' ;
?>

De code declareert eerst de basistekst 'Welkom bij Linuxhint' en gebruikt het echo-commando om het te tonen. Vervolgens specificeert het het te gebruiken coderingsalgoritme, AES-128-CTR . Het maakt ook gebruik van de openssl_cipher_iv_length() functie om de grootte van de te berekenen initialisatievector (IV) nodig voor dit cijfer.



De code stelt de codering in iv waarde aan ‘1234567891011121’ en de coderingssleutel 'Linux' . De gecodeerde string wordt vervolgens weergegeven met behulp van de opdracht echo zodra de codering is voltooid met behulp van de openssl_encrypt() functie. Vanwege de willekeurige initialisatievector die wordt gebruikt voor codering, zal de uiteindelijke gecodeerde tekenreeks elke keer anders zijn.

Decodeer een tekenreeks met behulp van de openssl_decrypt()-functie

Om een ​​string in PHP te decoderen, kunt u de openssl_decrypt() functie. Deze functie neemt de versleutelde gegevens, de versleutelingsmethode en de sleutel als invoer en retourneert de ontsleutelde leesbare tekst.

De syntaxis voor openssl_decrypt() methode is:

string openssl_decrypt ( snaar $ gegevens , snaar $ methode , snaar $ sleutel , int $opties = 0 , snaar $iv , snaar $label , snaar $ jij )

De argumenten die aan de functie worden doorgegeven zijn:

  • $ gegevens: De versleutelde tekenreeks of gegevens die u wilt ontsleutelen.
  • $methode: De coderingsmethode of het cijfer dat tijdens de codering wordt gebruikt. U kunt een lijst met ondersteunde coderingsmethoden verkrijgen door de openssl_get_cipher_methods()
  • $sleutel: De versleutelingssleutel die is gebruikt om de gegevens te versleutelen. Deze moet overeenkomen met de sleutel die tijdens de codering is gebruikt.
  • $opties: Een optionele parameter die extra vlaggen kan bevatten voor specifieke decoderingsopties. U kunt vlaggen combineren met de bitsgewijze OR-operator (|). Gemeenschappelijke vlaggen omvatten OPENSSL_RAW_DATA En OPENSSL_ZERO_PADDING .
  • $iv: De initialisatievector (IV) gebruikt tijdens encryptie. Het moet dezelfde IV zijn die tijdens de codering is gebruikt en als een tekenreeks is doorgegeven.
  • $label: De authenticatietag voor AEAD-coderingsmodi (Authenticated Encryption with Associated Data), zoals GCM (Galois/Counter Mode) of CCM (Counter with CBC-MAC). Als de authenticatie mislukt, zal openssl_decrypt() FALSE retourneren.
  • Jouw: Aanvullende geverifieerde gegevens die zijn gebruikt tijdens codering voor AEAD-coderingsmodi.

Winstwaarde: Als dit lukt, retourneert het de gedecodeerde tekenreeks; anders retourneert het FALSE.

Bijvoorbeeld:


$versleutelde_string = 'rKaeYsYaNjkVbRPmJizrdX0xutLE' ;
echo 'Gecodeerde tekenreeks: ' . $versleutelde_string . ' \N ' ;
$decodering_iv = '1234567891011121' ;
$codering = 'AES-128-CTR' ;
$opties = 0 ;
$decodering_sleutel = 'Linux' ;
$ decryptie = openssl_decrypt ( $versleutelde_string , $codering ,
$decodering_sleutel , $opties , $decodering_iv ) ;
echo 'Gedecodeerde tekenreeks: ' . $ decryptie ;
?>

De vectorlengte in deze code wordt berekend met behulp van de openssl_cipher_iv_length() functie, en dezelfde encryptie iv en sleutelparameters worden gebruikt tijdens de encryptie. Het coderingsalgoritme wordt gedefinieerd als AES-128-CTR .

De eerder gecodeerde tekenreeks wordt gedecodeerd met behulp van het coderingsalgoritme, de coderingssleutel, instellingen en IV-waarden door de openssl_decrypt() functie. De resulterende gedecodeerde tekst wordt vervolgens weergegeven met behulp van het echo-commando.

Conclusie

Bij het maken van websites komt vaak kijken versleutelen en ontsleutelen gegevens. Door versleuteling te gebruiken om gevoelige gegevens te beschermen, kunt u voorkomen dat uw gebruikers worden blootgesteld aan identiteitsdiefstal, fraude en andere beveiligingsbedreigingen. Strings in PHP kunnen worden versleuteld en ontsleuteld door de functies openssl_encrypt() En openssl_decrypt() functies. Door zorgvuldig gebruik te maken van het coderingsalgoritme en de sleutel, kunt u een robuust en veilig systeem creëren voor het verwerken van gevoelige gegevens in uw PHP-applicaties.