Wie verschlüssele und entschlüssele ich einen String in PHP?

Wie Verschlussele Und Entschlussele Ich Einen String In Php



Verschlüsselung ist der Vorgang der Umwandlung von Daten in einen Geheimcode oder ein Format, das für niemanden verständlich ist, der nicht über den Schlüssel zum Entschlüsseln verfügt. Entschlüsselung ist das Verfahren, mit dem diese Informationen übernommen und in ihr ursprüngliches, lesbares Format zurückversetzt werden. In PHP, Verschlüsselung, Und Entschlüsselung kann zum Schutz sensibler Daten wie Passwörter, Kreditkarteninformationen und anderer persönlicher Daten verwendet werden.

Der Verschlüsselung Der Algorithmus sollte eine Datenfolge aufnehmen, die Sie verschlüsseln möchten, und die ausgewählte Verschlüsselungsmethode zum Verschlüsseln der Daten verwenden. Der Algorithmus sollte die verschlüsselten Daten dann in einem Format zurückgeben, das Sie in einer Datenbank oder Datei speichern können.

Zu entschlüsseln Um die Daten zu entschlüsseln, sollten Sie zum Entschlüsseln der Daten dieselbe Verschlüsselungsmethode verwenden, mit der sie verschlüsselt wurden. Das bedeutet, dass Sie den Schlüssel irgendwo speichern müssen, damit Sie ihn später zum Dekodieren der Daten verwenden können.







Wie verschlüssele und entschlüssele ich einen PHP-String?

Ein PHP-String kann sein verschlüsselt Und entschlüsselt Verwendung der openssl_encrpyt() Und openSL_decrypt() Methoden bzw.



Verschlüsseln Sie einen String mit der Funktion openssl_encrypt()

Zu eine Zeichenfolge verschlüsseln in PHP mit dem openSL_encrypt() Für die Funktion müssen Sie die Klartextzeichenfolge, die Verschlüsselungsmethode und einen Schlüssel angeben. Die Funktion gibt die verschlüsselten Daten zurück, die Sie dann sicher speichern oder übertragen können.



Die Syntax für openSL_encrypt() Methode ist:





Zeichenfolge openssl_encrypt ( Zeichenfolge $Daten , Zeichenfolge $Methode , Zeichenfolge $key , $optionen = 0 , Zeichenfolge $iv , Zeichenfolge $tag = NULL , Zeichenfolge $ du , int $tag_length = 16 )
  • $data: Die Zeichenfolge oder Daten, die Sie verschlüsseln möchten.
  • $method: Die Verschlüsselungsmethode oder Verschlüsselung, die Sie verwenden möchten. Sie können eine Liste der unterstützten Verschlüsselungsmethoden erhalten, indem Sie die verwenden openssl_get_cipher_methods()
  • $key: Der Verschlüsselungsschlüssel, der zum Verschlüsseln der Daten verwendet wird. Es sollte eine Zeichenfolge angemessener Länge und Zufälligkeit sein, basierend auf der gewählten Verschlüsselungsmethode.
  • $optionen: Ein optionaler Parameter, der zusätzliche Flags für bestimmte Verschlüsselungsoptionen enthalten kann. Sie können Flags mit kombinieren bitweises ODER (|) Zu den gängigen Flags gehören: OPENSSL_RAW_DATA Und OPENSSL_ZERO_PADDING .
  • $iv: Der für die Verschlüsselung verwendete Initialisierungsvektor (iv); Es sollte ein zufälliger und eindeutiger Wert sein, der als Zeichenfolge bereitgestellt wird.
  • $tag: Ein optionaler Parameter, der für AEAD-Verschlüsselungsmodi (Authenticated Encryption with Associated Data) wie GCM (Galois/Counter Mode) oder CCM (Counter with CBC-MAC) verwendet wird. Es speichert das während der Verschlüsselung generierte Authentifizierungs-Tag.
  • Dein: Zusätzliche authentifizierte Daten, die für AEAD-Verschlüsselungsmodi verwendet werden können.
  • $tag_length: Die Länge des Authentifizierungs-Tags. Im GCM-Modus liegt die Tag-Länge zwischen 4 und 16 Byte.

Zum Beispiel:


$simple_string = „Willkommen bei Linuxhint \N ' ;
Echo „Originalzeichenfolge:“ . $simple_string ;
$Verschlüsselung = „AES-128-CTR“ ;
$iv_length = openssl_cipher_iv_length ( $Verschlüsselung ) ;
$optionen = 0 ;
$encryption_iv = '1234567891011121' ;
$encryption_key = „Linux“ ;
$Verschlüsselung = openSL_encrypt ( $simple_string , $Verschlüsselung ,
$encryption_key , $optionen , $encryption_iv ) ;
Echo „Verschlüsselte Zeichenfolge:“ . $Verschlüsselung . ' \N ' ;
?>

Der Code deklariert zunächst den Basistext „Willkommen bei Linuxhint“ und verwendet den Echo-Befehl, um es anzuzeigen. Anschließend wird der zu verwendende Verschlüsselungsalgorithmus angegeben. AES-128-CTR . Es verwendet auch die openssl_cipher_iv_length() Funktion zur Berechnung der Größe der Initialisierungsvektor (IV) wird für diese Chiffre benötigt.



Der Code legt die Verschlüsselung fest iv Wert auf „1234567891011121“ und der Verschlüsselungsschlüssel zu 'Linux' . Die verschlüsselte Zeichenfolge wird dann mit dem Echo-Befehl angezeigt, sobald die Verschlüsselung mit dem abgeschlossen wurde openSL_encrypt() Funktion. Aufgrund des für die Verschlüsselung verwendeten zufälligen Initialisierungsvektors variiert die endgültige verschlüsselte Zeichenfolge jedes Mal.

Entschlüsseln Sie einen String mit der Funktion openssl_decrypt()

Um eine Zeichenfolge in PHP zu entschlüsseln, können Sie die verwenden openSL_decrypt() Funktion. Diese Funktion verwendet die verschlüsselten Daten, die Verschlüsselungsmethode und den Schlüssel als Eingaben und gibt den entschlüsselten Klartext zurück.

Die Syntax für openSL_decrypt() Methode ist:

Zeichenfolge openssl_decrypt ( Zeichenfolge $Daten , Zeichenfolge $Methode , Zeichenfolge $key , int $optionen = 0 , Zeichenfolge $iv , Zeichenfolge $tag , Zeichenfolge $ du )

Die an die Funktion übergebenen Argumente sind:

  • $data: Die verschlüsselte Zeichenfolge oder die verschlüsselten Daten, die Sie entschlüsseln möchten.
  • $method: Die bei der Verschlüsselung verwendete Verschlüsselungsmethode oder Verschlüsselung. Sie können eine Liste der unterstützten Verschlüsselungsmethoden erhalten, indem Sie die verwenden openssl_get_cipher_methods()
  • $key: Der Verschlüsselungsschlüssel, der zum Verschlüsseln der Daten verwendet wurde. Er sollte mit dem bei der Verschlüsselung verwendeten Schlüssel übereinstimmen.
  • $optionen: Ein optionaler Parameter, der zusätzliche Flags für bestimmte Entschlüsselungsoptionen enthalten kann. Sie können Flags mit dem bitweisen ODER-Operator (|) kombinieren. Zu den gängigen Flags gehören: OPENSSL_RAW_DATA Und OPENSSL_ZERO_PADDING .
  • $iv: Der Initialisierungsvektor (IV) Wird bei der Verschlüsselung verwendet. Es sollte derselbe IV sein, der während der Verschlüsselung verwendet und als Zeichenfolge übergeben wurde.
  • $tag: Das Authentifizierungs-Tag für AEAD-Verschlüsselungsmodi (Authenticated Encryption with Associated Data), z. B. GCM (Galois/Counter-Modus) oder CCM (Counter with CBC-MAC). Wenn die Authentifizierung fehlschlägt, gibt openssl_decrypt() FALSE zurück.
  • Dein: Zusätzliche authentifizierte Daten, die während der Verschlüsselung für AEAD-Verschlüsselungsmodi verwendet wurden.

Rückgabewert: Bei Erfolg wird die entschlüsselte Zeichenfolge zurückgegeben. andernfalls wird FALSE zurückgegeben.

Zum Beispiel:


$encrypted_string = „rKaeYsYaNjkVbRPmJizrdX0xutLE“ ;
Echo „Verschlüsselte Zeichenfolge:“ . $encrypted_string . ' \N ' ;
$decryption_iv = '1234567891011121' ;
$Verschlüsselung = „AES-128-CTR“ ;
$optionen = 0 ;
$decryption_key = „Linux“ ;
$Entschlüsselung = openSL_decrypt ( $encrypted_string , $Verschlüsselung ,
$decryption_key , $optionen , $decryption_iv ) ;
Echo „Entschlüsselte Zeichenfolge:“ . $Entschlüsselung ;
?>

Die Vektorlänge in diesem Code wird mit berechnet openssl_cipher_iv_length() Funktion, und bei der Verschlüsselung werden die gleichen Verschlüsselungsparameter und Schlüsselparameter verwendet. Der Verschlüsselungsalgorithmus ist definiert als AES-128-CTR .

Die zuvor verschlüsselte Zeichenfolge wird mithilfe des Verschlüsselungsalgorithmus, des Verschlüsselungsschlüssels, der Einstellungen und der IV-Werte von entschlüsselt openSL_decrypt() Funktion. Der resultierende entschlüsselte Text wird dann mit dem Echo-Befehl angezeigt.

Abschluss

Die Erstellung von Websites erfordert häufig Folgendes Verschlüsseln und Entschlüsseln Daten. Durch den Einsatz von Verschlüsselung zum Schutz sensibler Daten können Sie verhindern, dass Ihre Benutzer Identitätsdiebstahl, Betrug und anderen Sicherheitsbedrohungen ausgesetzt werden. Strings in PHP können durch die Funktionen verschlüsselt und entschlüsselt werden openSL_encrypt() Und openSL_decrypt() Funktionen. Durch den sorgfältigen Einsatz des Verschlüsselungsalgorithmus und -schlüssels können Sie ein robustes und sicheres System für den Umgang mit sensiblen Daten in Ihren PHP-Anwendungen erstellen.