SHA256withRSA密钥加签

银联对接的一个加密方式,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 '';
        }
    }

 

你可能感兴趣的:(支付对接)