openssl_verifyÜberprüft eine Signatur
&reftitle.description;
intfalseopenssl_verifystringdatastringsignatureOpenSSLAsymmetricKeyOpenSSLCertificatearraystringpublic_keystringintalgorithmOPENSSL_ALGO_SHA1
Die Funktion openssl_verify überprüft die Korrektheit
der Signatur signature für die angegebenen Daten
data mit Hilfe des öffentlichen Schlüssels
public_key. Dieser muss der zum privaten Schlüssel
passende öffentliche sein, der für die Signatur verwendet wurde.
&reftitle.parameters;
data
Die Zeichenkette der Daten, mit denen die Signatur zuvor erzeugt wurde.
signature
Eine rohe binäre Zeichenkette, erzeugt durch
openssl_sign oder ähnliche Mittel.
public_keyOpenSSLAsymmetricKey - ein von
openssl_get_publickey zurückgegebener Schlüssel.
string - ein PEM-formatierter Schlüssel
(&zb; -----BEGIN PUBLIC KEY----- MIIBCgK...).
algorithmint - einer dieser
Signatur-Algorithmen.
string - eine von
openssl_get_md_methods zurückgegebene gültige
Zeichenkette, beispielsweise "sha1WithRSAEncryption" oder "sha512".
&reftitle.returnvalues;
Gibt bei einer korrekten Signatur 1 zurück, 0 bei einer unkorrekten und -1
oder &false;, falls ein Fehler aufgetreten ist.
&reftitle.changelog;
&Version;&Description;8.0.0public_key akzeptiert nun eine
OpenSSLAsymmetricKey- oder
OpenSSLCertificate-Instanz; vorher wurde eine
&resource; vom Typ OpenSSL-Schlüssel oder
OpenSSL X.509 akzeptiert.
&reftitle.examples;
openssl_verify-Beispiel
]]>
openssl_verify-Beispiel
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, "sha256WithRSAEncryption");
// überprüfe Signatur
$ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256);
if ($ok == 1) {
echo "gültig";
} elseif ($ok == 0) {
echo "ungültig";
} else {
echo "Fehler: ".openssl_error_string();
}
?>
]]>
&reftitle.seealso;
openssl_sign