openssl verify(): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== openssl_verify == '''(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)''' === openssl_verify — Verifiera signatur === ==== Beskrivning ==== <pre> openssl_verify( string '''$data''', string '''$signature''', OpenSSLAsymmetricKey|OpenSSLCertificate|array|string '''$public_key''', string|int '''$algorithm''' = OPENSSL_ALGO_SHA1 ): int|false </pre> <code>openssl_verify()</code> verifierar att signaturen är korrekt för den angivna datan med den offentliga nyckeln...') |
Admin (diskussion | bidrag) Ingen redigeringssammanfattning |
||
Rad 13: | Rad 13: | ||
): int|false | ): int|false | ||
</pre> | </pre> | ||
openssl_verify() verifierar att signaturen är korrekt för den angivna datan med den offentliga nyckeln '''public_key'''. Nyckeln måste vara den publika nyckeln som motsvarar den privata nyckeln som användes vid signering. | |||
==== Parametrar ==== | ==== Parametrar ==== | ||
* '''data''' — Strängen av data som användes för att generera signaturen. | * '''data''' — Strängen av data som användes för att generera signaturen. | ||
* '''signature''' — En rå binär sträng, genererad av < | * '''signature''' — En rå binär sträng, genererad av <pre>openssl_sign()</pre> eller liknande metoder. | ||
* '''public_key''' — Offentlig nyckel som används för att verifiera signaturen. Kan vara: | * '''public_key''' — Offentlig nyckel som används för att verifiera signaturen. Kan vara: | ||
* < | * <pre>OpenSSLAsymmetricKey</pre> - en nyckel som returneras av <pre>openssl_get_publickey()</pre> | ||
* < | * <pre>string</pre> - en PEM-formaterad nyckel (exempelvis: <pre>-----BEGIN PUBLIC KEY----- MIIBCgK...</pre>) | ||
* '''algorithm''' — En av signeringsalgoritmerna: | * '''algorithm''' — En av signeringsalgoritmerna: | ||
* < | * <pre>int</pre> - en av signeringsalgoritmerna, exempelvis <pre>OPENSSL_ALGO_SHA1</pre> | ||
* < | * <pre>string</pre> - en giltig sträng från <pre>openssl_get_md_methods()</pre>, exempelvis <pre>"sha1WithRSAEncryption"</pre> eller <pre>"sha512"</pre>. | ||
==== Returnerar ==== | ==== Returnerar ==== | ||
Rad 29: | Rad 29: | ||
==== Changelog ==== | ==== Changelog ==== | ||
* '''8.0.0''' — '''public_key''' accepterar nu en < | * '''8.0.0''' — '''public_key''' accepterar nu en <pre>OpenSSLAsymmetricKey</pre> eller <pre>OpenSSLCertificate</pre>-instans; tidigare accepterades en resurs av typen OpenSSL-nyckel eller OpenSSL X.509. | ||
==== Exempel ==== | ==== Exempel ==== | ||
Rad 84: | Rad 84: | ||
==== Se även ==== | ==== Se även ==== | ||
* [[openssl_sign | * [[openssl_sign]] — Generera signatur | ||
= Sidslut = | = Sidslut = |
Versionen från 31 oktober 2024 kl. 17.41
openssl_verify
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
openssl_verify — Verifiera signatur
Beskrivning
openssl_verify( string '''$data''', string '''$signature''', OpenSSLAsymmetricKey|OpenSSLCertificate|array|string '''$public_key''', string|int '''$algorithm''' = OPENSSL_ALGO_SHA1 ): int|false
openssl_verify() verifierar att signaturen är korrekt för den angivna datan med den offentliga nyckeln public_key. Nyckeln måste vara den publika nyckeln som motsvarar den privata nyckeln som användes vid signering.
Parametrar
- data — Strängen av data som användes för att generera signaturen.
- signature — En rå binär sträng, genererad av
openssl_sign()
eller liknande metoder. - public_key — Offentlig nyckel som används för att verifiera signaturen. Kan vara:
*
OpenSSLAsymmetricKey
- en nyckel som returneras av
openssl_get_publickey()
*
string
- en PEM-formaterad nyckel (exempelvis:
-----BEGIN PUBLIC KEY----- MIIBCgK...
)
- algorithm — En av signeringsalgoritmerna:
*
int
- en av signeringsalgoritmerna, exempelvis
OPENSSL_ALGO_SHA1
*
string
- en giltig sträng från
openssl_get_md_methods()
, exempelvis
"sha1WithRSAEncryption"
eller
"sha512"
.
Returnerar
Returnerar 1 om signaturen är korrekt, 0 om den är felaktig, och -1 eller false vid fel.
Changelog
- 8.0.0 — public_key accepterar nu en
OpenSSLAsymmetricKey
ellerOpenSSLCertificate
-instans; tidigare accepterades en resurs av typen OpenSSL-nyckel eller OpenSSL X.509.
Exempel
Exempel #1 openssl_verify()-exempel
<?php // $data och $signature antas innehålla datan och signaturen // hämta publik nyckel från certifikat och förbered den $pubkeyid = openssl_pkey_get_public("file://src/openssl-0.9.6/demos/sign/cert.pem"); // kontrollera om signaturen är giltig $ok = openssl_verify($data, $signature, $pubkeyid); if ($ok == 1) { echo "good"; } elseif ($ok == 0) { echo "bad"; } else { echo "ugly, error checking signature"; } // frigör nyckeln från minnet openssl_free_key($pubkeyid); ?>
Exempel #2 openssl_verify()-exempel
<?php // data du vill signera $data = 'my data'; // skapa ny privat och publik nyckel $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']); // skapa signatur openssl_sign($data, $signature, $private_key_res, "sha256WithRSAEncryption"); // verifiera signatur $ok = openssl_verify($data, $signature, $public_key_res, OPENSSL_ALGO_SHA256); if ($ok == 1) { echo "valid"; } elseif ($ok == 0) { echo "invalid"; } else { echo "error: ".openssl_error_string(); } ?>
Se även
- openssl_sign — Generera signatur
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.openssl-verify.php PHP Funktioner Funktionsreferens OpenSSL-funktioner
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på
https://www.linux.se/kontaka-linux-se/
Tack till Datorhjälp som har sponsrat Linux.se med webserver.