使用PHP程式碼實作百度文心一言API介面的請求簽章與驗簽
<?php // 请求参数 $params = [ 'appid' => 'your_appid', 'salt' => 'your_salt', 'from' => 'zh', 'to' => 'en', 'q' => '你好', ]; // 将参数按照字母顺序排序 ksort($params); // 拼接参数字符串 $paramStr = ''; foreach ($params as $key => $value) { $paramStr .= $key . '=' . $value; } // 加上密钥 $paramStr .= 'your_secret'; // 计算签名 $sign = md5($paramStr); // 添加签名到参数列表 $params['sign'] = $sign; // 发送请求 // ... ?>
$params為請求參數數組,其中包含了
appid 應用ID、
salt隨機字串、
from原始語言、
to目標語言、
q查詢字串等參數。首先使用
ksort()函數依照參數名稱的字母順序對參數進行排序。然後將參數依照
key=value的形式拼接成字串,並在最後加上上金鑰。最後使用
md5()函數對拼接後的字串進行簽章計算,得到簽章值。最後將簽章值加入參數陣列中的
sign鍵中,即完成了請求簽章的過程。
<?php // 接收到的返回数据 $responseData = [ 'code' => '0', 'msg' => 'success', 'data' => [ 'result' => 'Hello', ], 'sign' => 'xxx', ]; // 移除sign参数 $sign = $responseData['sign']; unset($responseData['sign']); // 将接收到的参数按照字母顺序排序 ksort($responseData); // 拼接参数字符串 $paramStr = ''; foreach ($responseData as $key => $value) { $paramStr .= $key . '=' . $value; } // 加上密钥 $paramStr .= 'your_secret'; // 计算签名 $calculatedSign = md5($paramStr); // 验证签名 if ($calculatedSign === $sign) { // 验签通过,可以使用返回的数据 echo '验签通过'; } else { // 验签失败 echo '验签失败'; } ?>
$responseData為接收到的回傳數據,包含了傳回的
code、
msg、
data等參數,以及傳回的簽章
sign。首先將簽名值儲存到變數
$sign中,並從返回資料中移除
sign參數。
key=value的形式拼接成字串,並在最後加上密鑰。最後使用
md5()函數對拼接後的字串進行簽章計算,得到計算得到的簽章值
$calculatedSign。
以上是使用PHP程式碼實作百度文心一言API介面的請求簽章與驗簽的詳細內容。更多資訊請關注PHP中文網其他相關文章!