code as follows |
|
<?php /** * Verify signature &NBSP * tobeverified the redaction to be verified, * PlainText the plaintext of the signature to be validated; * CertFile signer's public key certificate & nbsp &NBSP * Return validation successfully returns True, and the failure returns false (the reason for the failure from the Lasterrmsg property) */ Function verifymsg ($ Tobeverified, $PlainText, $CertFile, $signature _alg=openssl_algo_sha1) { &NBSP;&NBSP;&NBSP // $fp =fopen ($CertFile, "R") if (! $fp) { //echo " Error number:-10005, error description:er_find_cert_failed (certificate not found) "; &NBSP return false; } $pub _key=fread ($fp, 8192); fclose ($fp); $res = Openssl_get_publickey ($pub _key); if 1==openssl_verify ($PlainText, Pack ("H " . Strlen ($TobeVerified), $TobeVerified), $res, $signature _alg)) { &NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP //print ("Www.111cn.net prompts you: Validation succeeded". "<br>"); return true; } Else { //echo Error number:-10021, Error Description:er_verify_error (verification failure) | ". Openssl_error_string (); return false; }&NBSP } ? |
Openssl_verify may have three return value 1,0,-1, only 1 to indicate successful verification signatures.
$signature _alg default OPENSSL_ALGO_SHA1, if DSA encryption is set to Openssl_algo_dss1