Maison développement back-end tutoriel php Comment gérer le cryptage et le décryptage des données lors de l'implémentation de l'API en PHP

Comment gérer le cryptage et le décryptage des données lors de l'implémentation de l'API en PHP

Jun 17, 2023 pm 03:40 PM
解密 加密 api处理

Avec le développement continu d'Internet, le champ d'application de l'API (Application Programming Interface) devient de plus en plus étendu et les interactions de données entre différents systèmes deviennent de plus en plus fréquentes. Pour la transmission de données sensibles, le chiffrement et le décryptage des données sont des étapes essentielles. Cet article expliquera comment gérer le cryptage et le déchiffrement des données lors de la mise en œuvre d'une API basée sur PHP.

1. Pourquoi le cryptage des données est nécessaire

Le cryptage des données fait référence à la conversion du texte brut original en texte chiffré selon un certain algorithme, afin que les personnes qui n'ont pas obtenu la clé correspondante ne puissent pas l'interpréter, garantissant ainsi la confidentialité des données. Dans le développement d'API, les principales raisons du cryptage des données sont les deux points suivants :

  1. Sécurité des données

Lorsque l'API est ouverte à des tiers, la transmission des données d'interface ne peut pas être garantie dans un environnement de communication privé. Ainsi, la sécurité et l'authenticité des données peuvent être garanties grâce au cryptage pour éviter que les données ne soient volées ou falsifiées pendant la transmission.

  1. Vérification de la légalité

Le cryptage des données peut garantir la légalité de la transmission des données grâce à la vérification de l'identité, à la signature, etc. Pendant le processus d'envoi de la demande API, les paramètres de la demande sont cryptés avec des algorithmes irréversibles pour garantir la légitimité de la demande et empêcher toute falsification illégale ou falsification des données de la demande.

2. PHP implémente le cryptage des données

  1. Algorithme de cryptage symétrique

L'algorithme de cryptage symétrique signifie que la clé utilisée pour le cryptage et le déchiffrement est la même. Il vous suffit de transmettre la clé en tant que paramètre pour terminer les opérations de cryptage et de décryptage. . Les algorithmes de chiffrement symétriques couramment utilisés dans le développement d'API incluent DES, 3DES, AES, etc.

En prenant l'algorithme de cryptage AES comme exemple, PHP fournit des fonctions telles que openssl_encrypt() et openssl_decrypt() pour implémenter des opérations de cryptage symétriques. L'utilisation est la suivante :

//AES加密
function aesEncrypt($data, $key) {
    $iv_len = openssl_cipher_iv_length('AES-128-CBC');
    $iv = openssl_random_pseudo_bytes($iv_len);
    $encrypted = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
    $result = base64_encode($iv . $encrypted);
    return $result;
}
//AES解密
function aesDecrypt($data, $key) {
    $data = base64_decode($data);
    $iv_len = openssl_cipher_iv_length('AES-128-CBC');
    $iv = substr($data, 0, $iv_len);
    $encrypted = substr($data, $iv_len);
    $decrypted = openssl_decrypt($encrypted, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return $decrypted;
}
Copier après la connexion

où $data est les données à chiffrer et $key est la clé. Pendant le processus de chiffrement, obtenez la longueur du vecteur IV requise par l'algorithme de chiffrement en appelant openssl_cipher_iv_length(), appelez openssl_random_pseudo_bytes() pour générer un vecteur IV aléatoire, puis appelez la fonction openssl_encrypt() pour effectuer l'opération de chiffrement. Dans le processus de décryptage, le texte chiffré est d'abord restauré en données binaires via la fonction base64_decode(), puis le vecteur IV et les données cryptées sont extraits respectivement, et la fonction openssl_decrypt() est appelée pour effectuer l'opération de décryptage.

  1. Algorithme de cryptage asymétrique

L'algorithme de cryptage asymétrique signifie que les clés utilisées pour le cryptage et le déchiffrement sont différentes. Généralement, la clé publique est rendue publique et utilisée pour crypter les données, qui sont ensuite déchiffrées par la clé privée sur le serveur. côté. Dans le développement d'API, les algorithmes de chiffrement asymétriques courants incluent RSA, DSA, etc.

En prenant l'algorithme de cryptage RSA comme exemple, PHP fournit des fonctions telles que openssl_public_encrypt et openssl_private_decrypt pour implémenter des opérations de cryptage asymétriques. L'utilisation est la suivante :

//RSA加密
function rsaEncrypt($data,$public_key) {
    $encrypted = '';
    openssl_public_encrypt($data,$encrypted,$public_key,OPENSSL_PKCS1_PADDING);
    $encrypted = base64_encode($encrypted);
    return $encrypted;
}
//RSA解密
function rsaDecrypt($data,$private_key) {
    $decrypted = '';
    openssl_private_decrypt(base64_decode($data),$decrypted,$private_key,OPENSSL_PKCS1_PADDING);
    return $decrypted;
}
Copier après la connexion

Parmi eux, $data sont les données à chiffrer, et $public_key est la clé publique. Pendant le processus de cryptage, les données sont cryptées en appelant la fonction openssl_public_encrypt(), puis les données cryptées sont codées par la fonction base64_encode(). Pendant le processus de décryptage, les données chiffrées sont déchiffrées en appelant la fonction openssl_private_decrypt(), puis les données décryptées sont renvoyées.

3. PHP implémente la signature des données

La légalité de la signature des données dans l'API est vérifiée en hachant les paramètres. Pour les paramètres de requête API, le serveur doit effectuer des signatures de données pour garantir l'intégrité et l'authenticité de la transmission des données.

Les algorithmes de hachage couramment utilisés incluent HMAC, SHA1, MD5, etc. En prenant HMAC comme exemple, la signature de données peut être facilement implémentée à l'aide de la fonction hash_hmac() intégrée de PHP. L'utilisation est la suivante :

//HMAC签名
function hmacSign($data, $secret) {
    $signed_data = hash_hmac('sha256', $data, $secret, false);
    return $signed_data;
}
Copier après la connexion

Où, $data sont les données à signer et $secret est la clé de signature. Appelez la fonction hash_hmac() pour hacher les données et renvoyer les données signées.

4. Exemples de cryptage et de décryptage de données

Ensuite, nous appliquerons de manière exhaustive les méthodes de cryptage et de signature des données ci-dessus pour démontrer comment utiliser PHP pour terminer le processus de cryptage et de déchiffrement des paramètres de requête API.

//数据加密
$data = [
    'user_id' => 12345,
    'user_name' => 'test',
    'timestamp' => time(),
];
$json_data = json_encode($data);
$encrypted_data = aesEncrypt($json_data, $encrypt_key);

//数据签名
$signature_data = $encrypted_data . $secret_key;
$signature = hmacSign($signature_data, $hmac_key);

//API请求构造
$params = [
    'data' => $encrypted_data,
    'signature'=> $signature,
];
$request_url = 'http://api.example.com' . '?'. http_build_query($params);

//API响应解析
$response_data = file_get_contents($request_url);
$response_data = json_decode($response_data, true);

//数据解密
$encrypted_data = $response_data['data'];
$signature_data = $encrypted_data . $secret_key;
$signature = $response_data['signature'];
if(hmacSign($signature_data, $hmac_key) === $signature) {
    $json_data = aesDecrypt($encrypted_data, $encrypt_key);
    $response = json_decode($json_data, true);
    //TODO:处理API响应数据
}
else {
    //TODO:处理签名不合法的情况
}
Copier après la connexion

Dans le code ci-dessus, la fonction aesEncrypt() est d'abord utilisée pour crypter symétriquement les paramètres de requête, puis la fonction hmacSign() est utilisée pour hacher les données cryptées afin de générer des paramètres de requête signés. Une fois que le serveur a reçu la demande, il vérifie si la signature est légale en hachant les données de signature, puis utilise la fonction aesDecrypt() pour déchiffrer les données cryptées afin d'obtenir les paramètres de demande d'origine.

Dans le processus de candidature proprement dit, il est nécessaire de s'assurer que les clés de cryptage, les clés de signature et autres informations ne peuvent pas être divulguées pour garantir la sécurité des données de l'API. Dans le même temps, des algorithmes de chiffrement et de signature appropriés doivent être sélectionnés en fonction des exigences d'utilisation du système afin de répondre aux exigences de performances et de sécurité du système.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Révéler les causes du code d'état HTTP 460 Révéler les causes du code d'état HTTP 460 Feb 19, 2024 pm 08:30 PM

Décryptage du code d'état HTTP 460 : pourquoi cette erreur se produit-elle ? Introduction : Lors de l'utilisation quotidienne du réseau, nous rencontrons souvent diverses invites d'erreur, notamment des codes d'état HTTP. Ces codes d'état sont un mécanisme défini par le protocole HTTP pour indiquer le traitement d'une requête. Parmi ces codes d’état, il existe un code d’erreur relativement rare, à savoir le 460. Cet article examinera ce code d'erreur et expliquera pourquoi cette erreur se produit. Définition du code d'état HTTP 460 : Tout d'abord, nous devons comprendre les bases du code d'état HTTP

Comment configurer le cryptage de l'album photo sur un téléphone mobile Apple Comment configurer le cryptage de l'album photo sur un téléphone mobile Apple Mar 02, 2024 pm 05:31 PM

Sur les téléphones mobiles Apple, les utilisateurs peuvent crypter les albums photos selon leurs propres besoins. Certains utilisateurs ne savent pas comment le configurer. Vous pouvez ajouter les images qui doivent être cryptées au mémo, puis verrouiller le mémo. Ensuite, l'éditeur présentera la méthode de configuration du cryptage des albums photo mobiles pour les utilisateurs intéressés, venez jeter un œil ! Tutoriel sur les téléphones mobiles Apple Comment configurer le cryptage de l'album photo iPhone A : Après avoir ajouté les images qui doivent être cryptées au mémo, allez verrouiller le mémo pour une introduction détaillée : 1. Entrez dans l'album photo, sélectionnez l'image qui doit être cryptée. crypté, puis cliquez sur [Ajouter à] ci-dessous. 2. Sélectionnez [Ajouter aux notes]. 3. Saisissez le mémo, recherchez le mémo que vous venez de créer, saisissez-le et cliquez sur l'icône [Envoyer] dans le coin supérieur droit. 4. Cliquez sur [Verrouiller l'appareil] ci-dessous

Comment définir un mot de passe pour le cryptage de dossiers sans compression Comment définir un mot de passe pour le cryptage de dossiers sans compression Feb 20, 2024 pm 03:27 PM

Le cryptage de dossier est une méthode courante de protection des données qui crypte le contenu d'un dossier afin que seules les personnes disposant du mot de passe de décryptage puissent accéder aux fichiers. Lors du chiffrement d'un dossier, il existe des méthodes courantes pour définir un mot de passe sans compresser le fichier. Tout d’abord, nous pouvons utiliser la fonction de cryptage fournie avec le système d’exploitation pour définir un mot de passe de dossier. Pour les utilisateurs Windows, vous pouvez le configurer en suivant les étapes suivantes : Sélectionnez le dossier à chiffrer, cliquez avec le bouton droit sur le dossier et sélectionnez « Propriétés ».

Comment configurer le décryptage de mots Comment configurer le décryptage de mots Mar 20, 2024 pm 04:36 PM

Dans l'environnement de travail actuel, chacun est de plus en plus conscient de la confidentialité et des opérations de cryptage sont souvent effectuées pour protéger les fichiers lors de l'utilisation de logiciels. En particulier pour les documents clés, il convient de sensibiliser davantage à la confidentialité et de donner à tout moment la priorité absolue à la sécurité des documents. Je ne sais donc pas dans quelle mesure tout le monde comprend le décryptage des mots. Comment le faire fonctionner spécifiquement ? Aujourd'hui, nous allons vous montrer le processus de décryptage de mots à travers l'explication ci-dessous. Les amis qui ont besoin d'acquérir des connaissances en décryptage de mots ne devraient pas manquer le cours d'aujourd'hui. Une opération de décryptage est d'abord nécessaire pour protéger le fichier, ce qui signifie que le fichier est traité comme un document de protection. Après avoir effectué cela sur un fichier, une invite apparaît lorsque vous ouvrez à nouveau le fichier. La façon de décrypter le fichier est de saisir le mot de passe, afin que vous puissiez directement

Décrypter les astuces ajoutées par l'interpréteur PyCharm Décrypter les astuces ajoutées par l'interpréteur PyCharm Feb 21, 2024 pm 03:33 PM

Décrypter les astuces ajoutées par l'interpréteur PyCharm PyCharm est l'environnement de développement intégré (IDE) préféré par de nombreux développeurs Python, et il fournit de nombreuses fonctionnalités puissantes pour améliorer l'efficacité du développement. Parmi eux, le paramétrage de l'interpréteur est une partie importante de PyCharm. Un paramétrage correct de l'interpréteur peut aider les développeurs à exécuter le code en douceur et à déboguer le programme. Cet article présentera quelques techniques pour déchiffrer les ajouts de l'interpréteur PyCharm et les combinera avec des exemples de code spécifiques pour montrer comment configurer correctement l'interpréteur. Ajout et sélection d'interprètes dans Py

Comment chiffrer le package compressé dans la méthode de package compressé chiffré winrar-winrar Comment chiffrer le package compressé dans la méthode de package compressé chiffré winrar-winrar Mar 23, 2024 pm 12:10 PM

L'éditeur vous présentera trois méthodes de cryptage et de compression : Méthode 1 : cryptage La méthode de cryptage la plus simple consiste à saisir le mot de passe que vous souhaitez définir lors du cryptage du fichier, et le cryptage et la compression sont terminés. Méthode 2 : Cryptage automatique La méthode de cryptage ordinaire nous oblige à saisir un mot de passe lors du cryptage de chaque fichier. Si vous souhaitez crypter un grand nombre de packages compressés et que les mots de passe sont les mêmes, nous pouvons définir le cryptage automatique dans WinRAR, puis juste quand. En compressant les fichiers normalement, WinRAR ajoutera un mot de passe à chaque package compressé. La méthode est la suivante : ouvrez WinRAR, cliquez sur Options-Paramètres dans l'interface de configuration, passez à [Compression], cliquez sur Créer un mot de passe de configuration par défaut. Entrez le mot de passe que nous voulons définir ici, cliquez sur OK pour terminer le réglage, nous n'avons besoin que de corriger

Analog, un nouveau projet de vétérans de la cryptographie : 16 millions de dollars levés, avec un parachutage attendu Analog, un nouveau projet de vétérans de la cryptographie : 16 millions de dollars levés, avec un parachutage attendu Feb 22, 2024 pm 04:50 PM

Auteur original : Meteor, ChainCatcher Éditeur original : Marco, ChainCatcher Récemment, le protocole d'interopérabilité de la chaîne complète Analog a été révélé au public avec la divulgation d'un financement de 16 millions de dollars. Les institutions d'investissement comprennent TribeCapital, NGCVentures, Wintermute, GSR, NEAR, OrangeDAO. , et les sociétés de gestion d'actifs alternatives de Mike Novogratz, Samara Asset Group, Balaji Srinivasan, etc. Fin 2023, Analog a suscité un certain enthousiasme dans l'industrie. Ils ont publié des informations sur l'événement d'inscription ouvert au testnet sur la plateforme X.

Comment décrypter la version informatique cryptée d'EZVIZ Cloud Video ? -La version PC d'EZVIZ Cloud Video quitte le plein écran ? Comment décrypter la version informatique cryptée d'EZVIZ Cloud Video ? -La version PC d'EZVIZ Cloud Video quitte le plein écran ? Mar 18, 2024 pm 12:25 PM

Comment déchiffrer des vidéos sur EZVIZ Cloud : Il existe de nombreuses façons de déchiffrer des vidéos sur EZVIZ Cloud, dont l'une consiste à utiliser l'application mobile EZVIZ Cloud. Les utilisateurs doivent uniquement accéder à la liste des appareils, sélectionner la caméra à décrypter et accéder à la page des détails de l'appareil. Sur la page des détails de l'appareil, recherchez l'option « Paramètres », puis sélectionnez « Cryptage vidéo » pour définir les paramètres pertinents. Dans l'interface des paramètres de cryptage vidéo, vous pouvez choisir l'option permettant de désactiver le cryptage vidéo et enregistrer les paramètres pour terminer l'opération de décryptage. Cette étape simple permet aux utilisateurs de décrypter facilement les vidéos et améliore la commodité d'utilisation de la caméra. Si vous utilisez le client informatique d'EZVIZ Cloud, vous pouvez également annuler le cryptage vidéo en suivant des étapes similaires. Connectez-vous simplement et sélectionnez la caméra correspondante, entrez dans l'interface des détails de l'appareil, puis recherchez l'ajout de vidéo dans les paramètres.

See all articles