Maison  >  Article  >  développement back-end  >  Le code PHP implémente le traitement de cryptage et de déchiffrement des paramètres de demande de l'interface API Baidu Wenxinyiyan

Le code PHP implémente le traitement de cryptage et de déchiffrement des paramètres de demande de l'interface API Baidu Wenxinyiyan

WBOY
WBOYoriginal
2023-08-16 23:40:491043parcourir

Le code PHP implémente le traitement de cryptage et de déchiffrement des paramètres de demande de linterface API Baidu Wenxinyiyan

Le code PHP implémente le traitement de cryptage et de décryptage des paramètres de demande de l'interface API Baidu Wenxin Yiyan

Hitokoto est un service qui donne accès à des phrases aléatoires. L'API Baidu Wenxin Yiyan est l'un d'entre eux qui permet aux développeurs d'appeler l'interface. Afin de garantir la sécurité des données, nous pouvons crypter les paramètres de la demande et décrypter la réponse après réception de la réponse. Voici un exemple de code PHP implémentant le traitement de cryptage et de déchiffrement des paramètres de requête de l'interface API Baidu Wenxin Yiyan :

<?php
function encryptData($data, $key)
{
    $method = 'AES-128-ECB'; // 加密方法
    $iv = ""; // 初始化向量
    $encrypted = openssl_encrypt($data, $method, $key, OPENSSL_RAW_DATA, $iv);
    $encrypted = base64_encode($encrypted);
    return $encrypted;
}

function decryptData($data, $key)
{
    $method = 'AES-128-ECB'; // 解密方法
    $iv = ""; // 初始化向量
    $decrypted = openssl_decrypt(base64_decode($data), $method, $key, OPENSSL_RAW_DATA, $iv);
    return $decrypted;
}

// 请求参数加密处理示例
$url = "http://api.hitokoto.cn/"; // API接口地址
$key = "your_encryption_key"; // 加密密钥
$params = [
    "c" => "category",
    "s" => "source",
]; // 请求参数

$encryptedParams = encryptData(json_encode($params), $key); // 加密参数
$encryptedParams = urlencode($encryptedParams); // 对加密结果进行URL编码

$requestUrl = $url . "?params=" . $encryptedParams;

// 发起API请求
$response = file_get_contents($requestUrl);

// 解密响应数据示例
$encryptedResponse = $_GET['response']; // 获取加密后的响应数据
$decryptedResponse = decryptData($encryptedResponse, $key); // 解密响应数据
$decodedResponse = json_decode($decryptedResponse, true); // 将解密结果转换为数组或对象

// 输出结果
var_dump($decodedResponse);
?>

Dans le code ci-dessus, la fonction encryptData est utilisée pour crypter les paramètres de requête, decryptData est utilisée pour déchiffrer les données de réponse. Pendant le processus de cryptage et de décryptage, nous utilisons l'algorithme de cryptage AES-128-ECB et devons fournir la clé de cryptage. Pour les paramètres chiffrés, ils doivent être codés en URL et envoyés en tant que paramètres de requête. encryptData函数用于对请求参数进行加密处理,decryptData函数用于解密响应数据。在加密和解密过程中,我们使用AES-128-ECB加密算法,同时需要提供加密密钥。对于加密后的参数,需要进行URL编码后作为请求的参数进行发送。

在实际调用时,你需要将代码中的$url设置为实际的API接口地址,$key设置为安全的密钥。$params

Lors de l'appel, vous devez définir $url dans le code sur l'adresse réelle de l'interface API et $key sur la clé sécurisée. $params sont les paramètres de requête que vous souhaitez envoyer, qui peuvent être modifiés en conséquence selon le document d'interface. Ensuite, vous pouvez traiter et utiliser les données de réponse décryptées en fonction des besoins réels.

J'espère que cet exemple de code pourra vous aider à crypter et déchiffrer les paramètres de requête de l'interface API Baidu Wenxin Yiyan pour garantir la sécurité des données. Bien entendu, dans les projets réels, vous devrez peut-être également prendre en compte d’autres facteurs de sécurité et effectuer une optimisation et un packaging appropriés. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn