程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php利用openssl生成簽名實例程序

php利用openssl生成簽名實例程序

編輯:關於PHP編程

       實例

     代碼如下   <?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)

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved