Forum und email

openssl_verify

(PHP 4 >= 4.0.4, PHP 5)

openssl_verify — Verify signature

설명

int openssl_verify ( string $data , string $signature , mixed $pub_key_id [, int $signature_alg ] )

openssl_verify() verifies that the signature is correct for the specified data using the public key associated with pub_key_id . This must be the public key corresponding to the private key used for signing.

매개변수

data

signature

pub_key_id

signature_alg

Defaults to OPENSSL_ALGO_SHA1. For more information see the list of Signature Algorithms.

반환값

Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.

변경 기록

버전 설명
5.0.0 The signature_alg parameter was added.

예제

Example#1 openssl_verify() example

<?php
// $data and $signature are assumed to contain the data and the signature

// fetch public key from certificate and ready it
$fp fopen("/src/openssl-0.9.6/demos/sign/cert.pem""r");
$cert fread($fp8192);
fclose($fp);
$pubkeyid openssl_get_publickey($cert);

// state whether signature is okay or not
$ok openssl_verify($data$signature$pubkeyid);
if (
$ok == 1) {
    echo 
"good";
} elseif (
$ok == 0) {
    echo 
"bad";
} else {
    echo 
"ugly, error checking signature";
}
// free the key from memory
openssl_free_key($pubkeyid);
?>