目次
1. リクエスト署名
ホームページ バックエンド開発 PHPチュートリアル PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのリクエスト署名と署名検証を実装します。

PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのリクエスト署名と署名検証を実装します。

Aug 27, 2023 am 10:46 AM
php api 署名を要求する

PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのリクエスト署名と署名検証を実装します。

PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのリクエスト署名と署名検証を実装します。

1. リクエスト署名

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 キーに追加され、署名を要求するプロセスが完了します。

2. 署名の検証

Baidu Wenxin Yiyan API インターフェイスから返されたデータを受信するとき、返されたデータが改ざんされていないことを確認するために、返されたデータの署名を検証する必要があります。 。以下は、PHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスの署名検証を実装する例です。

<?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 は、返された # を含む、受信した戻りデータです。 ##codemsgdata などのパラメーター、および返された署名 sign。まず署名値を変数 $sign に保存し、戻りデータから sign パラメーターを削除します。 次に、受け取ったパラメータをアルファベット順に並べ替え、パラメータを

key=value

の形式の文字列に連結し、最後にキーを追加します。最後に、md5() 関数を使用して、結合された文字列に対して署名計算を実行し、計算された署名値 $calculatedSign を取得します。 最後に、計算した署名値と受信した署名値を比較し、等しければ署名検証に合格し、等しくない場合は署名検証に失敗します。

返されたデータの署名検証プロセスが完了しました。

上記のコード例を通じて、Baidu Wenxin Yiyan API インターフェイスを使用する場合、PHP コードを使用してリクエストの署名と検証機能を実装し、リクエストのセキュリティとデータの整合性を確保できます。

以上がPHP コードを使用して、Baidu Wenxin Yiyan API インターフェイスのリクエスト署名と署名検証を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles