openssl sign(): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== openssl_sign == '''(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)''' === openssl_sign — Generera signatur === ==== Beskrivning ==== <pre> openssl_sign( string $data, string &$signature, #[\SensitiveParameter] OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key, string|int $algorithm = OPENSSL_ALGO_SHA1 ): bool </pre> openssl_sign() beräknar en signatur för den angivna datan genom att skapa en kryptografisk digital signatur med den privata ny...') |
(Ingen skillnad)
|
Versionen från 31 oktober 2024 kl. 17.45
openssl_sign
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
openssl_sign — Generera signatur
Beskrivning
openssl_sign(
string $data,
string &$signature,
#[\SensitiveParameter] OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key,
string|int $algorithm = OPENSSL_ALGO_SHA1
): bool
openssl_sign() beräknar en signatur för den angivna datan genom att skapa en kryptografisk digital signatur med den privata nyckeln kopplad till $private_key. Notera att själva datan inte krypteras.
Parametrar
data — Strängen av data du vill signera.
signature — Om anropet lyckas returneras signaturen i $signature.
private_key — Den privata nyckel som används för att generera signaturen. Kan vara:
- OpenSSLAsymmetricKey - en nyckel, erhållen från openssl_get_privatekey()
- string - en PEM-formaterad nyckel
algorithm — Algoritmen för signering. Kan vara:
- int - en av de tillgängliga signeringsalgoritmerna, exempelvisOPENSSL_ALGO_SHA1- string - en giltig sträng frånopenssl_get_md_methods(), exempelvis"sha256WithRSAEncryption"eller"sha384".
Returnerar
Returnerar true vid framgång eller false vid fel.
Changelog
Version 8.0.0 - private_key accepterar nu en OpenSSLAsymmetricKey eller OpenSSLCertificate-instans; tidigare accepterades en resurs av typen OpenSSL-nyckel eller OpenSSL X.509.
Exempel
Exempel #1 openssl_sign()-exempel
<?php
// $data antas innehålla datan som ska signeras
// hämta privat nyckel från fil och förbered den
$pkeyid = openssl_pkey_get_private("file://src/openssl-0.9.6/demos/sign/key.pem");
// beräkna signatur
openssl_sign($data, $signature, $pkeyid);
// frigör nyckeln från minnet
openssl_free_key($pkeyid);
?>
Exempel #2 openssl_sign()-exempel
<?php
// data du vill signera
$data = 'my data';
// skapa nytt par av privat och publik nyckel
$new_key_pair = openssl_pkey_new(array(
"private_key_bits" => 2048,
"private_key_type" => OPENSSL_KEYTYPE_RSA,
));
openssl_pkey_export($new_key_pair, $private_key_pem);
$details = openssl_pkey_get_details($new_key_pair);
$public_key_pem = $details['key'];
// skapa signatur
openssl_sign($data, $signature, $private_key_pem, OPENSSL_ALGO_SHA256);
// spara för senare användning
file_put_contents('private_key.pem', $private_key_pem);
file_put_contents('public_key.pem', $public_key_pem);
file_put_contents('signature.dat', $signature);
// verifiera signatur
$r = openssl_verify($data, $signature, $public_key_pem, "sha256WithRSAEncryption");
var_dump($r);
?>
Se även
openssl_verify() — Verifiera signatur
Sidslut
Orginalhemsidan på Engelska :https://www.php.net/manual/en/function.openssl-sign.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.