SHA256withRSA金鑰加簽

A暱稱A發表於2018-12-14

銀聯對接的一個加密方式,sha256withrsa其實就是rsa2加密方式,完整加簽程式碼記錄以作備忘

/**
     * 根據原文生成簽名內容
     *
     * @param string $data 原文內容
     *
     * @return string
     */
    private function sign($data)
    {
        $filePath = 'rsa_private_dev.pfx'; //獲取私鑰的地址,不必轉換pem格式
        if(!file_exists($filePath)) {
            return false;
        }
        $pkcs12 = file_get_contents($filePath);
        if (openssl_pkcs12_read($pkcs12, $certs, '123456')) { //$certs裡面試解讀私鑰的內容,後面是私鑰的密碼
            $privateKey = $certs['pkey'];
            if (openssl_sign(utf8_encode($data), $binarySignature, $privateKey, OPENSSL_ALGO_SHA256)) {//openssl_algo_sha256是一種方式,還有sha1
                return bin2hex($binarySignature);
            } else {
                return '';
            }
        } else {
            return '';
        }
    }

 

相關文章