好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php利用openssl生成签名实例程序 - php函数

php利用openssl生成签名实例程序

前面我有讲过利用其它的算法生成签名,下面我们同样在利用openssl生成签名,希望此文章对各位同学会有所帮助.

PHP实例代码如下:

<?php  /**       * 根据原文生成签名内容   *   * @param string $data 原文内容   *   * @return string         //开源代码phpfensi.com   */        function  sign( $strData )       {            $filePath  =  'test.pfx' ;            if (! file_exists ( $filePath )) {                return  false;           }                $pkcs12  =  file_get_contents ( $filePath );            if  (openssl_pkcs12_read( $pkcs12 ,  $certs ,  '' )) {                $privateKey  =  $certs [ 'pkey' ];                $publicKey  =  $certs [ 'cert' ];                $signedMsg  =  "" ;                if  (openssl_sign( $strData ,  $signedMsg ,  $privateKey )) {            $signedMsg =bin2hex( $signedMsg );                    return   $signedMsg ;               }  else  {                    return   '' ;               }           }  else  {                return   '0' ;           }       }  /*      openssl_pkcs12_read 可以读取pfx格式的私钥,而不需要非要转成pem格式的文件           */   ?> 

openssl_sign 默认signature_alg参数是OPENSSL_ALGO_SHA1,如果使用DSA加密方式需要使用OPENSSL_ALGO_DSS1参数.

signature_alg 其他参数

OPENSSL_ALGO_DSS1 (integer)

OPENSSL_ALGO_SHA1 (integer)

OPENSSL_ALGO_SHA224 (integer)

OPENSSL_ALGO_SHA256 (integer)

OPENSSL_ALGO_SHA384 (integer)

OPENSSL_ALGO_SHA512 (integer)

OPENSSL_ALGO_RMD160 (integer)

OPENSSL_ALGO_MD5 (integer)

OPENSSL_ALGO_MD4 (integer)

OPENSSL_ALGO_MD2 (integer)

查看更多关于php利用openssl生成签名实例程序 - php函数的详细内容...

  阅读:36次