您当前的位置: 首页 > 网站编程 > PHP教程 > php利用openssl生成签名实例程序

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

作者:不详 来源:网络 发布时间: 2014-08-14 21:34 点击:
实例 代码如下 ?php /** * 根据原文生成签名内容 * * @param string $data 原文内容 * * @return string */ function sign($strData) { $filePath = 'test.pfx'; if(!file_exists($filePath)) { return false; } $pkcs12 = file_get_contents($filePath); if (openssl_

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

  实例

  

  

  

  

  

  

  

  

  

  

  
代码如下
<?php

     

  /**

      

  * 根据原文生成签名内容

      

  *

      

  * @param string $data 原文内容

      

  *

      

  * @return string

      

  */

     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生成签名实例程序"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4