class VerifyCardBase { protected $realname; protected $cardNumber; protected $idCard; protected $phone; protected $key = 'c123456'; public function __construct($data) { $this->realname = $data['realname']; $this->cardNumber = $data['card_number']; $this->idCard = $data['id_card']; $this->phone = $data['phone']; } /** * @param $params * @return bool|string */ public function MakeSign($params) { //签名步骤一:按字典序排序数组参数 ksort($params); $string = $this->ToUrlParams($params); return $this -> rsaSign($string); } /** * 将参数拼接为url: key=value&key=value * @param $params * @return string */ public function ToUrlParams($params) { $string = ''; if (!empty($params)) { $array = array(); foreach ($params as $key => $value) { $array[] = $key . '=' . $value; } $string = implode("&", $array); } return $string; } /** * @param $data * @return bool|string */ function rsaSign($data) { $filePath = dirname(__FILE__).'/cer/0154403695800.pfx'; if(!file_exists($filePath)) { return false; } $pkcs12 = file_get_contents($filePath); if (openssl_pkcs12_read($pkcs12, $certs, $this->key)) { $privateKey = $certs['pkey']; //根据实际情况键值可能不同 if (openssl_sign($data, $binarySignature, $privateKey, 'sha256')) { return base64_encode($binarySignature); } else { return ''; } } else { return ''; } } }
pfx 加密算法
最新推荐文章于 2024-03-26 10:57:03 发布