php 使用openssl_verify验证签名实例程序
下面我们一起来看看关于php 使用openssl_verify验证签名实例程序,openssl_verify 可能有三个返回值1,0,-1,只有返回1表示验证签名成功,$signature_alg 默认OPENSSL_ALGO_SHA1,如果是DSA加密要设置成OPENSSL_ALGO_DSS1,实例代码如下:
<?php /** * 验证签名 * TobeVerified 待验证签名的密文 * PlainText 待验证签名的明文 * CertFile 签名者公钥证书 * return 验证成功返回true,失败返回false(从LastErrMsg属性获取失败原因) */ function VerifyMsg( $TobeVerified , $PlainText , $CertFile , $signature_alg =OPENSSL_ALGO_SHA1) { //用公钥验签 $fp = fopen ( $CertFile , "r" ); if (! $fp ) { //echo "Error Number:-10005, Error Description: ER_FIND_CERT_FAILED(找不到证书)"; 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 )) { //print("www.phpfensi.com提示您:验证成功"." <br>"); return true; } else { //echo "Error Number:-10021, Error Description: ER_VERIFY_ERROR(验签失败)|".openssl_error_string(); return false; } } ?>查看更多关于php 使用openssl_verify验证签名实例程序 - php函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did30821