Maison développement back-end tutoriel php Mécanisme de cryptage AES/RSA

Mécanisme de cryptage AES/RSA

Apr 04, 2017 pm 02:36 PM

Pendant la communication HTTP entre le serveur et le terminal, les paquets sont souvent capturés par le réseau. , décompilation (Android outil de décompilation APK) et autres technologies pour obtenir l'adresse et les paramètres de l' interface de communication HTTP afin d'assurer la sécurité du. informations, nous utilisons la combinaison AES+RSA. Méthode pour crypter et déchiffrer les paramètres de l'interface

1 À propos du mécanisme de cryptage RSA : la clé publique est utilisée pour crypter les données et la clé privée est utilisée pour déchiffrer. les données. La clé publique et la clé privée sont générées en même temps, correspondance biunivoque. Par exemple : A a une clé publique et B a une clé publique et une clé privée. avec la clé publique, B peut le déchiffrer avec la clé privée et la clé publique. >

2. Le cryptage AES est également appelé cryptage symétrique : après que A ait utilisé le mot de passe pour crypter les données en AES, B utilise le même mot de passe pour le décrypter en AES. le texte chiffré



Méthode de fonctionnement spécifique :

1. Utilisez openssl pour saisir les

attributs pertinents de la clé (nom de l'entreprise, email, etc. .) dans le terminal, puis générez la clé publique et la clé privée sous l'adresse actuelle du terminal. Il y a 7 fichiers au total (voir le lien développé en annexe pour savoir comment utiliser les 7 fichiers 2. À l'heure actuelle, on suppose que le client Android possède la clé publique Public

Key

et que le serveur possède la clé publique et la clé privée PrivateKey 3. Android envoie une requête au serveur : Android génère aléatoirement un mot de passe aléatoire Byte[], en supposant RandomKey="123456", via l'algorithme AES, pour les données

Json

à utiliser pour le cryptage 4. Mais pour le moment, le serveur ne sait pas quelle est la RandomKey du client, il doit donc transmettre la Randomkey au serveur en même temps, sinon le serveur ne peut pas décrypter les données Json via AES. Mais si la demande est envoyée directement, La RandomKey sera exposée, donc la RandomKey doit être chiffrée de manière irréversible avec RSA.

5 Android utilisera RandomKey pour les données Json cryptées AES et PublicKey pour les données RandomKey cryptées RSA vers le serveur via HTTP. .

6. Le serveur reçoit les données Json cryptées par AES et les données RandomKey cryptées par Rsa

7 Le serveur déchiffre la RandomKey cryptée à l'aide de la clé privée générée. par Android.

8. Utilisez la RandomKey originale pour effectuer le déchiffrement symétrique AES des données Json cryptées. À ce stade, les données Json originales envoyées du côté Android ont été obtenues. Effectuez des opérations commerciales régulières sur le serveur, puis chiffrez les données renvoyées avec AES via RandomKey du côté Android, puis la réponse est renvoyée.

9. Une fois que le terminal Android a reçu les données de réponse, il peut directement effectuer le décryptage AES à l'aide de la RandomKey générée localement.

Vous pouvez consulter l'organigramme détaillé ci-dessous.


Mécanisme de cryptage AES/RSA
Organigramme de transfert de données HTTPS client-serveur

Remarques

 : 1 Au cours du processus de développement proprement dit, il a été constaté que RSA et AES ont des normes de génération de texte chiffré différentes et sont incompatibles avec IOS. IOS nécessite une clé publique différente dans l'algorithme RSA que JAVA. Pour des solutions détaillées, veuillez consulter :

2. Le cryptage AES ne peut pas utiliser de clés dépassant 128 octets, car les versions supérieures à jdk1.7 ne prennent pas en charge les clés dépassant 128 octets.

Résumé : À partir d'un test de performances, l'ensemble du client, depuis l'envoi des données cryptées jusqu'au déchiffrement et à l'obtention des données originales renvoyées, ne dépasse pas

300

ms (test de transmission des serveurs Iphone4 et Centos Java). Ce plan n'utilise pas TOKEN, mais il pourra être utilisé à l'avenir. La façon de mettre à jour la clé publique doit également continuer à être améliorée.

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)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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)

Comment effectuer des opérations de cryptage et de décryptage AES en Java Comment effectuer des opérations de cryptage et de décryptage AES en Java May 08, 2023 pm 10:34 PM

1. Connaissances générales En cryptographie, les algorithmes de chiffrement sont divisés en chiffrement unidirectionnel et chiffrement bidirectionnel. Le chiffrement symétrique signifie que la même clé est utilisée pour le chiffrement et le déchiffrement, y compris le chiffrement AES, le chiffrement DES, etc. Le chiffrement asymétrique fait référence à l'utilisation de différentes clés pour le chiffrement et le déchiffrement, notamment le chiffrement RSA, etc. Le chiffrement unidirectionnel inclut des algorithmes de digestion tels que MD5 et SHA, qui sont irréversibles. Le chiffrement bidirectionnel comprend le chiffrement symétrique et le chiffrement asymétrique. Le cryptage bidirectionnel est réversible et la clé du texte chiffré existe. 2. Introduction à AES AES : Advanced Encryption Standard (Advanced Encryption Standard) est une norme de cryptage par blocs adoptée par le gouvernement fédéral américain et constitue actuellement l'algorithme de cryptage symétrique le plus populaire. Il s'agit d'un algorithme de chiffrement par blocs de nouvelle génération utilisé pour remplacer le DES.

Utiliser Python pour implémenter le chiffrement et le déchiffrement RSA Utiliser Python pour implémenter le chiffrement et le déchiffrement RSA Apr 14, 2023 pm 02:13 PM

Hier, j'ai vu un article en anglais [1] qui montrait comment utiliser Python pour implémenter l'algorithme RSA. La logique du code est la même que celle de l'article précédent Comprendre l'algorithme RSA. Les amis qui ne connaissent pas RSA peuvent lire l'article Comprendre. l'algorithme RSA, qui fait face à Qu'est-ce que RSA, les principes mathématiques de RSA sont expliqués et un exemple simple est donné. On peut dire que c'est l'article le plus simple pour comprendre RSA sur Quanzhihu (cela vient des commentaires des lecteurs). J'ai exécuté le code fourni en anglais et j'ai découvert qu'il ne pouvait pas crypter le chinois. J'ai donc modifié les fonctions de cryptage et de décryptage pour prendre en charge le cryptage et le décryptage du chinois. L'article d'aujourd'hui explique comment utiliser Python pour implémenter le processus de chiffrement et de déchiffrement RSA afin de vous aider à établir

Comment utiliser PHP et GMP pour exécuter des algorithmes de cryptage et de déchiffrement RSA pour les grands entiers Comment utiliser PHP et GMP pour exécuter des algorithmes de cryptage et de déchiffrement RSA pour les grands entiers Jul 28, 2023 pm 05:25 PM

Comment utiliser PHP et GMP pour exécuter l'algorithme de cryptage et de déchiffrement RSA pour les grands entiers L'algorithme de cryptage RSA est un algorithme de cryptage asymétrique largement utilisé dans le domaine de la sécurité des données. Il met en œuvre le processus de chiffrement à clé publique et de déchiffrement à clé privée basé sur deux nombres premiers particulièrement grands et quelques opérations mathématiques simples. Dans le langage PHP, le calcul de grands entiers peut être réalisé grâce à la bibliothèque GMP (GNUMultiplePrecision), et les fonctions de chiffrement et de déchiffrement peuvent être réalisées en combinant l'algorithme RSA. Cet article explique comment utiliser les bibliothèques PHP et GMP pour

Comment SpringBoot implémente le décryptage automatique de l'interface RAS+AES Comment SpringBoot implémente le décryptage automatique de l'interface RAS+AES May 20, 2023 pm 04:04 PM

1. Parlons d'un cliché sur la sécurité des interfaces en cas d'accident. Avant le Nouvel An chinois, j'ai réalisé un petit jeu H5 sur les combats d'avions. En mode infini, les points de l'utilisateur doivent être sauvegardés, car le corps utilisé pour passer les paramètres est visible. . Pour des raisons de sécurité de l'interface, j'ai convenu avec le front-end que les paramètres à transmettre sont : les points de mode illimités de l'utilisateur + "un nombre sur lequel nous nous sommes mis d'accord" + la somme de l'identifiant de l'utilisateur après cryptage en Base64, la requête est envoyée au serveur et je la décrypte pour obtenir les points de mode illimité de l'utilisateur ; comme suit : { "integral": MTExMTM0NzY5NQ==",} Mais pendant le nouvel an chinois, l'opération m'est soudainement venue et m'a dit que le score de la liste de classement des points en mode infini était faux : c'est très étrange, la deuxième place n'en est qu'une

Comment implémenter des algorithmes de cryptage et de déchiffrement RSA à l'aide de PHP et GMP Comment implémenter des algorithmes de cryptage et de déchiffrement RSA à l'aide de PHP et GMP Jul 28, 2023 pm 11:54 PM

Comment utiliser PHP et GMP pour implémenter l'algorithme de cryptage et de déchiffrement RSA L'algorithme de cryptage RSA est un algorithme de cryptage asymétrique largement utilisé dans le domaine de la sécurité de l'information. Dans les applications pratiques, il est souvent nécessaire d'utiliser des langages de programmation pour mettre en œuvre des algorithmes de chiffrement et de déchiffrement RSA. PHP est un langage de script côté serveur couramment utilisé et GMP (GNUMultiplePrecision) est une bibliothèque de calcul mathématique de haute précision qui peut nous aider à effectuer un grand nombre d'opérations requises dans l'algorithme RSA. Cet article expliquera comment utiliser PHP et GMP

Comment écrire un algorithme de chiffrement RSA en utilisant Python ? Comment écrire un algorithme de chiffrement RSA en utilisant Python ? Sep 20, 2023 pm 01:21 PM

Comment écrire un algorithme de chiffrement RSA en utilisant Python ? Introduction : RSA est un algorithme de chiffrement asymétrique largement utilisé dans le domaine de la sécurité de l'information. Dans les communications modernes, l'algorithme de chiffrement RSA est couramment utilisé pour chiffrer et déchiffrer les données sensibles. Cet article explique comment utiliser Python pour écrire l'algorithme de chiffrement RSA et fournit des exemples de code spécifiques. Installez la bibliothèque Python Avant de commencer à écrire l'algorithme de chiffrement RSA, vous devez installer la bibliothèque de chiffrement Python. Il peut être installé à l'aide de la commande suivante : pipinstallrsa generate

Explication détaillée de la technologie de cryptage AES256 en PHP et de son application dans le framework Explication détaillée de la technologie de cryptage AES256 en PHP et de son application dans le framework Jun 09, 2023 pm 12:25 PM

Avec le développement et la popularisation d’Internet, la sécurité des données fait l’objet de plus en plus d’attention. La technologie de cryptage est un moyen très efficace lors de la transmission et du stockage des données. Le cryptage peut garantir la confidentialité et l'intégrité des données. En PHP, la technologie de chiffrement AES256 est une méthode de chiffrement très populaire. Cet article présentera en détail sa méthode d'application dans le framework. Introduction à la technologie de cryptage AES256 AES (Advanced Encryption Standard) est la norme de cryptage avancée et constitue une méthode de cryptage moderne et populaire.

PHP implémente la technologie de chiffrement asymétrique RSA PHP implémente la technologie de chiffrement asymétrique RSA Jun 18, 2023 am 09:34 AM

La technologie de chiffrement asymétrique RSA est actuellement l’une des méthodes de chiffrement les plus populaires et les plus sécurisées. En tant que langage de programmation largement utilisé, PHP présente également des avantages uniques dans la mise en œuvre du cryptage RSA. Cet article présentera aux lecteurs comment utiliser PHP pour implémenter la technologie de chiffrement asymétrique RSA. 1. Qu'est-ce que l'algorithme RSA ? L'algorithme RSA est une technologie de cryptage asymétrique. Il est généralement utilisé pour le cryptage des données et les signatures numériques. Sa sécurité repose principalement sur un problème de théorie des nombres, à savoir la difficulté de factoriser de très grands entiers en très peu de temps. Flux chiffré par l'algorithme RSA

See all articles