/** * 签名 * * @param String $params_str */ function sign(&$params) { global $log; $log->LogInfo ( '=====签名报文开始======' ); if(isset($params['transTempUrl'])){ unset($params['transTempUrl']); } // 转换成key=val&串 $params_str = coverParamsToString ( $params ); $log->LogInfo ( "签名key=val&...串 >" . $params_str ); $params_sha1x16 = sha1 ( $params_str, FALSE ); $log->LogInfo ( "摘要sha1x16 >" . $params_sha1x16 ); // 签名证书路径 $cert_path = SDK_SIGN_CERT_PATH; $private_key = getPrivateKey ( $cert_path ); // 签名 $sign_falg = openssl_sign ( $params_sha1x16, $signature, $private_key, OPENSSL_ALGO_SHA1 ); if ($sign_falg) { $signature_base64 = base64_encode ( $signature ); $log->LogInfo ( "签名串为 >" . $signature_base64 ); $params ['signature'] = $signature_base64; } else { $log->LogInfo ( ">>>>>签名失败<<<<<<<" ); } $log->LogInfo ( '=====签名报文结束======' ); }
/** * 签名 * * @param String $params_str */ function sign(&$params, $cert_path, $cert_pwd) { //global $log; $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL); $log->LogInfo('=====签名报文开始======'); if (isset($params['signature'])) { unset($params['signature']); } // 转换成key=val&串 $params_str = createLinkString($params, true, false); $log->LogInfo("签名key=val&...串 >" . $params_str); $params_sha1x16 = sha1($params_str, FALSE); $log->LogInfo("摘要sha1x16 >" . $params_sha1x16); $private_key = getPrivateKey($cert_path, $cert_pwd); // 签名 $sign_falg = openssl_sign($params_sha1x16, $signature, $private_key, OPENSSL_ALGO_SHA1); if ($sign_falg) { $signature_base64 = base64_encode($signature); $log->LogInfo("签名串为 >" . $signature_base64); $params['signature'] = $signature_base64; } else { $log->LogInfo(">>>>>签名失败<<<<<<<"); } $log->LogInfo('=====签名报文结束======'); }
/** * 签名 * * @param String $params_str */ function sign(&$params) { if (isset($params['transTempUrl'])) { unset($params['transTempUrl']); } // 转换成key=val&串 $params_str = coverParamsToString($params); $params_sha1x16 = sha1($params_str, FALSE); // 签名证书路径 $cert_path = SDK_SIGN_CERT_PATH; $private_key = getPrivateKey($cert_path); // 签名 $sign_falg = openssl_sign($params_sha1x16, $signature, $private_key, OPENSSL_ALGO_SHA1); $signature_base64 = base64_encode($signature); $params['signature'] = $signature_base64; }
function InsertSignature($amount) { $merchantID = getMerchantID(); $timestamp = getmicrotime(); $data = $merchantID . $amount . $timestamp; $pub = getPublicKey(); $pvt = getPrivateKey(); $pub_digest = hopHash($data, $pub); $pvt_digest = hopHash($data, $pvt); echo '<input type="hidden" name="amount" value="' . $amount . '">' . "\n"; echo '<input type="hidden" name="orderPage_timestamp" value="' . $timestamp . '">' . "\n"; echo '<input type="hidden" name="merchantID" value="' . $merchantID . '">' . "\n"; echo '<input type="hidden" name="orderPage_signaturePublic" value="' . $pub_digest . '">' . "\n"; echo '<input type="hidden" name="orderPage_signaturePrivate" value="' . $pvt_digest . '">' . "\n"; }
/** * 解密数据 * @param string $data数据 * @param string $cert_path 证书配置路径 * @return unknown */ function decryptData($data, $cert_path = SDK_SIGN_CERT_PATH) { $data = base64_decode($data); $private_key = getPrivateKey($cert_path); openssl_private_decrypt($data, $crypted, $private_key); return $crypted; }
function verifyRecaptcha($captcha) { $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=" . getPrivateKey() . "&response=" . $captcha . "&remoteip=" . $_SERVER['REMOTE_ADDR']); return json_decode($response); }