Maison développement back-end tutoriel php Comment PHP utilise MongoDB pour chiffrer et déchiffrer les données

Comment PHP utilise MongoDB pour chiffrer et déchiffrer les données

Jul 07, 2023 am 11:12 AM
mongodb 解密 加密

Comment PHP utilise MongoDB pour implémenter le cryptage et le décryptage des données

Dans le développement Web, le cryptage et le décryptage des données sont une mesure de sécurité très importante. MongoDB est une base de données populaire qui offre des fonctionnalités puissantes et une flexibilité pour le cryptage et le déchiffrement des données. Cet article explique comment utiliser MongoDB pour crypter et déchiffrer des données en PHP et fournit des exemples de code correspondants.

  1. Installer les extensions MongoDB et PHP
    Tout d'abord, vous devez installer la base de données MongoDB et l'extension MongoDB pour PHP. Vous pouvez télécharger la base de données MongoDB via le site officiel et suivre leur guide d'installation. Pour installer l'extension MongoDB pour PHP vous pouvez utiliser la commande PECL : pecl install mongodb。安装完成后,你需要在php.ini文件中添加extension=mongodb.so pour activer l'extension.
  2. Connectez-vous à la base de données MongoDB
    La connexion à la base de données MongoDB à l'aide de PHP est très simple. Il vous suffit de créer un objet client MongoDB à l'aide du constructeur de la classe MongoDB, puis de sélectionner la base de données à laquelle vous souhaitez vous connecter. Voici un exemple de code :
<?php
$mongoClient = new MongoDBClient("mongodb://localhost:27017");
$database = $mongoClient->mydatabase;
?>
Copier après la connexion
  1. Données cryptées
    MongoDB fournit deux méthodes de cryptage symétrique et de cryptage par hachage. Les exemples de codes pour ces deux méthodes de cryptage seront présentés ci-dessous.

3.1 Cryptage symétrique
Le cryptage symétrique est une méthode de cryptage qui utilise la même clé pour le cryptage et le déchiffrement. Voici un exemple de code utilisant le cryptage symétrique MongoDB :

<?php
$collection = $database->mycollection;

$encryptionData = [
    'name' => 'John Smith',
    'email' => 'john@example.com',
    'phone' => '1234567890'
];

$encryptionOptions = [
    'keyVaultNamespace' => 'encryption.__keyVault',
    'kmsProviders' => [
        'local' => [
            'key' => base64_encode(openssl_random_pseudo_bytes(96)),
        ],
    ],
    'algorithm' => 'AEAD_AES_256_CBC_HMAC_SHA_512-Random',
    'header' => ['keyId' => base64_encode(openssl_random_pseudo_bytes(96))],
];

$command = [
    'encrypt' => $collection->getCollectionName(),
    'bsonType' => 'object',
    'value' => $encryptionData,
    'algorithm' => 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic',
];

$encryptedData = $database->command(['encrypt' => [$command, $encryptionOptions]])->toArray()[0];

$collection->insertOne($encryptedData);
?>
Copier après la connexion

3.2 Cryptage par hachage
Le cryptage par hachage est une méthode de cryptage unidirectionnelle qui convertit les données en une valeur de hachage unique. Voici un exemple de code pour le cryptage à l'aide du hachage MongoDB :

<?php
$collection = $database->mycollection;

$encryptionData = [
    'name' => 'John Smith',
    'email' => 'john@example.com',
    'phone' => '1234567890'
];

$command = [
    'hash' => $collection->getCollectionName(),
    'value' => $encryptionData,
    'algorithm' => 'bcrypt'
];

$hashedData = $database->command($command)->toArray()[0];

$collection->insertOne($hashedData);
?>
Copier après la connexion
  1. Déchiffrement des données
    Le déchiffrement des données cryptées est également simple. Voici un exemple de code pour le cryptage symétrique et le déchiffrement des données cryptées par hachage :

4.1 Décryptage symétrique
Le déchiffrement symétrique nécessite une clé spécifiée. Voici un exemple de code pour le décryptage symétrique :

<?php
$collection = $database->mycollection;

$decryptionOptions = [
    'keyVaultNamespace' => 'encryption.__keyVault',
    'kmsProviders' => [
        'local' => [
            'key' => $encryptionOptions['kmsProviders']['local']['key'],
        ],
    ],
];

$command = [
    'decrypt' => $collection->getCollectionName(),
    'bsonType' => 'object',
    'value' => $encryptedData,
    'algorithm' => 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic',
];

$decryptedData = $database->command(['decrypt' => [$command, $decryptionOptions]])->toArray()[0];
?>
Copier après la connexion

4.2 Décryptage par hachage
Le cryptage par hachage est une méthode de cryptage unidirectionnelle et ne prend pas en charge le décryptage. Si vous devez vérifier des données chiffrées hachées, vous pouvez utiliser la fonctionnalité de vérification fournie par la base de données.

<?php
$collection = $database->mycollection;

$hashedData = $collection->findOne(['_id' => $documentId]);

if (password_verify($inputPassword, $hashedData->password)) {
    // 密码验证成功,执行相应操作
} else {
    // 密码验证失败,执行相应操作
}
?>
Copier après la connexion

En résumé, cet article présente la méthode d'utilisation de MongoDB pour implémenter le cryptage et le déchiffrement des données, et fournit des exemples de code pour le cryptage symétrique et le cryptage par hachage. En appliquant ces technologies de manière appropriée, vous pouvez protéger vos données sensibles et améliorer la sécurité du système. J'espère que cet article vous aidera !

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
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)

Obtenez le package d'installation Gate.io gratuitement Obtenez le package d'installation Gate.io gratuitement Feb 21, 2025 pm 08:21 PM

Gate.io est un échange de crypto-monnaie populaire que les utilisateurs peuvent utiliser en téléchargeant son package d'installation et en l'installant sur leurs appareils. Les étapes pour obtenir le package d'installation sont les suivantes: Visitez le site officiel de Gate.io, cliquez sur "Télécharger", sélectionnez le système d'exploitation correspondant (Windows, Mac ou Linux) et téléchargez le package d'installation sur votre ordinateur. Il est recommandé de désactiver temporairement les logiciels antivirus ou le pare-feu pendant l'installation pour assurer une installation fluide. Une fois terminé, l'utilisateur doit créer un compte Gate.io pour commencer à l'utiliser.

Liste des dix premiers échanges dans le cercle des devises Liste des dix premiers échanges dans le cercle des devises Feb 21, 2025 pm 10:18 PM

Les dix premiers échanges du cercle des devises sont classés par volume de négociation: Binance ouyihuobi ftxkrakencoinbasegeminibitfinexbybitgate.io

Comment configurer l'expansion automatique de MongoDB sur Debian Comment configurer l'expansion automatique de MongoDB sur Debian Apr 02, 2025 am 07:36 AM

Cet article présente comment configurer MongoDB sur Debian System pour réaliser une expansion automatique. Les étapes principales incluent la configuration de l'ensemble de répliques MongoDB et de la surveillance de l'espace disque. 1. Installation de MongoDB Tout d'abord, assurez-vous que MongoDB est installé sur le système Debian. Installez à l'aide de la commande suivante: SudoaptupDaSudoaptInstall-myongoDB-Org 2. Configuration de la réplique MongoDB Ensemble de répliques MongoDB assure la haute disponibilité et la redondance des données, ce qui est la base de la réalisation d'une expansion de capacité automatique. Démarrer le service MongoDB: Sudosystemctlstartmongodsudosys

Comment assurer la haute disponibilité de MongoDB sur Debian Comment assurer la haute disponibilité de MongoDB sur Debian Apr 02, 2025 am 07:21 AM

Cet article décrit comment construire une base de données MongoDB hautement disponible sur un système Debian. Nous explorerons plusieurs façons de garantir que la sécurité des données et les services continueront de fonctionner. Stratégie clé: réplicaset: réplicaset: Utilisez des répliques pour obtenir la redondance des données et le basculement automatique. Lorsqu'un nœud maître échoue, l'ensemble de répliques élise automatiquement un nouveau nœud maître pour assurer la disponibilité continue du service. Sauvegarde et récupération des données: utilisez régulièrement la commande Mongodump pour sauvegarder la base de données et formuler des stratégies de récupération efficaces pour faire face au risque de perte de données. Surveillance et alarmes: déploier les outils de surveillance (tels que Prometheus, Grafana) pour surveiller l'état de course de MongoDB en temps réel, et

Laquelle des dix principales applications de trading de devises virtuelles est la meilleure? Laquelle des dix principales applications de trading de devises virtuelles est la meilleure? Mar 19, 2025 pm 05:00 PM

Top 10 des classements de trading de devises virtuels: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. Kucoin, 8. Crypto.com, 9. BitFinex, 10. Gemini. La sécurité, la liquidité, les frais de traitement, la sélection des devises, l'interface utilisateur et le support client doivent être pris en compte lors du choix d'une plate-forme.

Connectez-vous sur l'entrée officielle de OUYI OK Exchange Connectez-vous sur l'entrée officielle de OUYI OK Exchange Feb 21, 2025 pm 05:33 PM

OUYI Exchange, l'une des principales plateformes de trading de crypto-monnaie au monde, fournit aux utilisateurs des services de trading d'actifs numériques sûrs et fiables. Sa connexion de portail officielle peut accéder directement à la plate-forme, ce qui rend la gestion des actifs, les transactions et les investissements de manière pratique et efficace. En adoptant des mesures de technologie de pointe et de contrôle des risques, OUYI s'engage à créer un environnement commercial sûr et stable, permettant aux utilisateurs de négocier avec confiance et de profiter de la commodité et des avantages du monde des actifs numériques.

Classement de la plate-forme d'achat Bitcoin (dernière mise à jour en 2025) Classement de la plate-forme d'achat Bitcoin (dernière mise à jour en 2025) Feb 21, 2025 pm 07:12 PM

Dans l'espace d'actifs numériques, Bitcoin, en tant que crypto-monnaie très attendue, a une demande croissante de transactions. Cet article explorera les dix principales plateformes de trading Bitcoin au monde, fournira une liste de classement complète et aide les lecteurs à choisir la plate-forme qui convient le mieux à leurs besoins de trading.

Top 10 des plates-formes de trading de devises virtuelles numériques classement 2025 Dernières Top 10 des plates-formes de trading de devises virtuelles numériques classement 2025 Dernières Mar 21, 2025 pm 03:27 PM

Top 10 des plates-formes de trading de devises virtuelles numériques en 2025: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi Global, 6. Coinbase, 7. Kucoin, 8. Crypto.com, 9. Bitfinex, 10. Mexc Global. Ces plateformes ont été sélectionnées comme les meilleures en raison de leur volume de transaction, de leur expérience utilisateur, de la sécurité et de la richesse des devises.

See all articles