openssl_verify
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
openssl_verify — Überprüft eine Signatur
Beschreibung
$data
, string $signature
, mixed $pub_key_id
[, mixed $signature_alg
= OPENSSL_ALGO_SHA1
] ) : int
Die Funktion openssl_verify() überprüft
die Korrektheit der Unterschrift signature
für die angegebenen Daten data
mit Hilfe des
öffentlichen Schlüssels pub_key_id
. Das muss der
passende öffentliche zum privaten Schlüssel sein, der für die
Unterschrift benutzt wurde.
Parameter-Liste
-
data
-
Der Daten-String, der verwendet wurde um die Signatur zuvor zu erstellen
-
signature
-
Ein roher Binär-String, erzeugt durch openssl_sign() oder ähnliche Mittel
-
pub_key_id
-
resource - ein von openssl_get_publickey() zurück gegebener Schlüssel
string - ein PEM formatierter Schlüssel, zum Beispiel "-----BEGIN PUBLIC KEY----- MIIBCgK..."
-
signature_alg
-
int - einer von diesen Signatur-Algorithmen.
string - von openssl_get_md_methods() zurück gegebener gültiger String, zum Beispiel "sha1WithRSAEncryption" oder "sha512".
Rückgabewerte
Gibt für eine korrekte Signatur 1 zurück, 0 für eine unkorrekte und -1 falls ein Fehler aufgetreten ist.
Beispiele
Beispiel #1 openssl_verify() example
<?php
// Annahme: $data und $signature enthalten die Daten und die Unterschrift
// holen des öffentlichen Schlüssels aus dem Zertifikat und vorbereiten
$pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pem");
// feststellen, ob die Unterschrift ok ist oder nicht
$ok = openssl_verify($data, $signature, $pubkeyid);
if ($ok == 1) {
echo "gut";
} elseif ($ok == 0) {
echo "schlecht";
} else {
echo "Mist, Fehler beim überprüfen der Signatur";
}
// Löschen des Schlüssels aus dem Speicher
openssl_free_key($pubkeyid);
?>
Beispiel #2 openssl_verify() Beispiel
<?php
// die zu signierenden Daten
$data = 'my data';
// erzeuge neuen privaten und öffentlichen Schlüssel
$private_key_res = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
$details = openssl_pkey_get_details($private_key_res);
$public_key_res = openssl_pkey_get_public($details['key']);
// erzeuge Signatur
openssl_sign($data, $signature, $private_key_res, "sha1WithRSAEncryption");
// überprüfe Signatur
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA1);
if ($ok == 1) {
echo "gültig";
} elseif ($ok == 0) {
echo "ungültig";
} else {
echo "Fehler: ".openssl_error_string();
}
?>
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-verify.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
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.