Rechercher une fonction PHP

openssl_encrypt

(PHP 5 >= 5.3.0, PHP 7)

openssl_encryptVerschlüsselt Daten

Beschreibung

openssl_encrypt ( string $data , string $method , string $key [, int $options = 0 [, string $iv = "" [, string &$tag = NULL [, string $aad = "" [, int $tag_length = 16 ]]]]] ) : string

Verschlüsselt die Daten mit der angegebenen Methode und Schlüssel. Die Rückgabe kann aus unbearbeiteten oder base64 kodierten Zeichenketten bestehen.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Parameter-Liste

data

Die zu verschlüsselnde Klartextnachricht.

method

Verschlüsselungsmethode. openssl_get_cipher_methods() liefert eine Liste der verfügbaren Verschlüsselungsmethoden.

key

Der Schlüssel.

options

options ist eine Bitmaske aus OPENSSL_RAW_DATA und OPENSSL_ZERO_PADDING.

iv

Initialisierungsvektor (darf nicht NULL sein).

tag

Das Authentifizierungskennzeichen das per Reference übergeben wird, wenn der AEAD Verschlüsselungsmodus (GCM oder CCM) verwendet wird.

aad

Zusätzliche Authentifizierungsdaten.

tag_length

Die Länge des Authentifizierungskennzeichens (tag). Der Wert liegt zwischen 4 und 16 für den GCM-Modus.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Rückgabewerte

Gibt nach erfolgreicher Verarbeitung die verschlüsselte Zeichenkette zurück. Im Fehlerfall wird FALSE zurückgegeben.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Fehler/Exceptions

Gibt einen E_WARNING Fehler aus, wenn eine unbekannte Verschlüsselungsmethode über den method Parameter übergeben wurde.

Gibt einen E_WARNING Fehler aus, wenn eine leere Zeichenkette über den iv Parameter übergeben wurde.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Changelog

Version Beschreibung
7.1.0 Die tag, aad und tag_length Parameter wurden hinzugefügt.
5.4.0 Der raw_output wurde geändert zu options.
5.3.3 Der iv wurde hinzugefügt.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Beispiele

Beispiel #1 AES Authenticated Encryption im GCM-Modus Beispiel für PHP 7.1+

<?php
// $key sollte zuvor auf eine kryptographisch sichere Weise erzeugt worden sein, z.B. per openssl_random_pseudo_bytes
$plaintext "zu verschlüsselnde Nachricht";
$cipher "aes-128-gcm";
if (
in_array($cipheropenssl_get_cipher_methods()))
{
    
$ivlen openssl_cipher_iv_length($cipher);
    
$iv openssl_random_pseudo_bytes($ivlen);
    
$ciphertext openssl_encrypt($plaintext$cipher$key$options=0$iv$tag);
    
// speichere $cipher, $iv und $tag für spätere Entschlüsselung
    
$original_plaintext openssl_decrypt($ciphertext$cipher$key$options=0$iv$tag);
    echo 
$original_plaintext."\n";
}
?>

Beispiel #2 AES Authenticated Encryption Beispiel für PHP 5.6+

<?php
// $key sollte zuvor auf eine kryptographisch sichere Weise erzeugt worden sein, z.B. per openssl_random_pseudo_bytes
$plaintext "zu verschlüsselnde Nachricht";
$ivlen openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv openssl_random_pseudo_bytes($ivlen);
$ciphertext_raw openssl_encrypt($plaintext$cipher$key$options=OPENSSL_RAW_DATA$iv);
$hmac hash_hmac('sha256'$ciphertext_raw$key$as_binary=true);
$ciphertext base64_encode$iv.$hmac.$ciphertext_raw );

// spätere Entschlüsselung ...
$c base64_decode($ciphertext);
$ivlen openssl_cipher_iv_length($cipher="AES-128-CBC");
$iv substr($c0$ivlen);
$hmac substr($c$ivlen$sha2len=32);
$ciphertext_raw substr($c$ivlen+$sha2len);
$original_plaintext openssl_decrypt($ciphertext_raw$cipher$key$options=OPENSSL_RAW_DATA$iv);
$calcmac hash_hmac('sha256'$ciphertext_raw$key$as_binary=true);
if (
hash_equals($hmac$calcmac)) // PHP 5.6+ Rechenzeitangriff-sicherer Vergleich
{
    echo 
$original_plaintext."\n";
}
?>

Finde eine PHP-Funktion

Deutsche Übersetzung

Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.

Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.

Vielen Dank im Voraus.

Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-openssl-encrypt.html

Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.

Referenzen

  1. Zeigen Sie - html-Dokument Sprache des Dokuments:fr Manuel PHP : http://php.net

Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.

Inhaltsverzeichnis Haut