PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのリクエスト署名と署名検証を実装します。
Baidu Wenxin を使用する場合作成時API インターフェイスでは、リクエストのセキュリティを確保するために、リクエストが悪意を持って改ざんされるのを防ぐためにリクエストに署名する必要があります。以下は、PHP コードを使用して、Baidu Wenxin Yiyan 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
パラメーターを削除します。 次に、受け取ったパラメータをアルファベット順に並べ替え、パラメータを
の形式の文字列に連結し、最後にキーを追加します。最後に、md5()
関数を使用して、結合された文字列に対して署名計算を実行し、計算された署名値 $calculatedSign
を取得します。 最後に、計算した署名値と受信した署名値を比較し、等しければ署名検証に合格し、等しくない場合は署名検証に失敗します。
返されたデータの署名検証プロセスが完了しました。
上記のコード例を通じて、Baidu Wenxin Yiyan API インターフェイスを使用する場合、PHP コードを使用してリクエストの署名と検証機能を実装し、リクエストのセキュリティとデータの整合性を確保できます。
以上がPHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのリクエスト署名と署名検証を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。