openssl verify(): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(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...')
 
Ingen redigeringssammanfattning
Rad 13: Rad 13:
): int|false
): int|false
</pre>
</pre>
<code>openssl_verify()</code> verifierar att signaturen är korrekt för den angivna datan med den offentliga nyckeln <code>public_key</code>. Nyckeln måste vara den publika nyckeln som motsvarar den privata nyckeln som användes vid signering.
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 <code>openssl_sign()</code> eller liknande metoder.
* '''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:
   * <code>OpenSSLAsymmetricKey</code> - en nyckel som returneras av <code>openssl_get_publickey()</code>
   * <pre>OpenSSLAsymmetricKey</pre> - en nyckel som returneras av <pre>openssl_get_publickey()</pre>
   * <code>string</code> - en PEM-formaterad nyckel (exempelvis: <code>-----BEGIN PUBLIC KEY----- MIIBCgK...</code>)
   * <pre>string</pre> - en PEM-formaterad nyckel (exempelvis: <pre>-----BEGIN PUBLIC KEY----- MIIBCgK...</pre>)
* '''algorithm''' — En av signeringsalgoritmerna:
* '''algorithm''' — En av signeringsalgoritmerna:
   * <code>int</code> - en av signeringsalgoritmerna, exempelvis <code>OPENSSL_ALGO_SHA1</code>
   * <pre>int</pre> - en av signeringsalgoritmerna, exempelvis <pre>OPENSSL_ALGO_SHA1</pre>
   * <code>string</code> - en giltig sträng från <code>openssl_get_md_methods()</code>, exempelvis <code>"sha1WithRSAEncryption"</code> eller <code>"sha512"</code>.
   * <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 <code>OpenSSLAsymmetricKey</code> eller <code>OpenSSLCertificate</code>-instans; tidigare accepterades en resurs av typen OpenSSL-nyckel eller OpenSSL X.509.
* '''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()]] - Generera signatur
* [[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.0public_key accepterar nu en
    OpenSSLAsymmetricKey
    eller
    OpenSSLCertificate
    -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

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.