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...') |
Admin (diskussion | bidrag) |
||
Rad 15: | Rad 15: | ||
openssl_sign() beräknar en signatur för den angivna datan genom att skapa en kryptografisk digital signatur med den privata nyckeln kopplad till <code>$private_key</code>. Notera att själva datan inte krypteras. | openssl_sign() beräknar en signatur för den angivna datan genom att skapa en kryptografisk digital signatur med den privata nyckeln kopplad till <code>$private_key</code>. Notera att själva datan inte krypteras. | ||
==== Parametrar ==== | ==== <u>Parametrar</u> ==== | ||
data — Strängen av data du vill signera. | '''data''' — Strängen av data du vill signera. | ||
signature — Om anropet lyckas returneras signaturen i <code>$signature</code>. | signature — Om anropet lyckas returneras signaturen i <code>$signature</code>. | ||
private_key — Den privata nyckel som används för att generera signaturen. Kan vara: | private_key — Den privata nyckel som används för att generera signaturen. Kan vara: | ||
- OpenSSLAsymmetricKey - en nyckel, erhållen från <code>openssl_get_privatekey()</code> | - OpenSSLAsymmetricKey - en nyckel, erhållen från <code>openssl_get_privatekey()</code> | ||
- string - en PEM-formaterad nyckel | - string - en PEM-formaterad nyckel | ||
algorithm — Algoritmen för signering. Kan vara: | '''algorithm''' — Algoritmen för signering. Kan vara: | ||
- int - en av de tillgängliga signeringsalgoritmerna, exempelvis <code>OPENSSL_ALGO_SHA1</code> | - int - en av de tillgängliga signeringsalgoritmerna, exempelvis <code>OPENSSL_ALGO_SHA1</code> | ||
- string - en giltig sträng från <code>openssl_get_md_methods()</code>, exempelvis <code>"sha256WithRSAEncryption"</code> eller <code>"sha384"</code>. | - string - en giltig sträng från <code>openssl_get_md_methods()</code>, exempelvis <code>"sha256WithRSAEncryption"</code> eller <code>"sha384"</code>. |
Nuvarande version från 31 oktober 2024 kl. 17.46
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.