PHP가 MongoDB를 사용하여 데이터 암호화 및 암호 해독을 구현하는 방법
웹 개발에서 데이터 암호화 및 암호 해독은 매우 중요한 보안 조치입니다. MongoDB는 데이터 암호화 및 해독을 위한 강력한 기능과 유연성을 제공하는 인기 있는 데이터베이스입니다. 이 기사에서는 MongoDB를 사용하여 PHP에서 데이터를 암호화 및 해독하는 방법을 소개하고 해당 코드 예제를 제공합니다.
pecl install mongodb
。安装完成后,你需要在php.ini文件中添加extension=mongodb.so
확장을 활성화할 수 있습니다. <?php $mongoClient = new MongoDBClient("mongodb://localhost:27017"); $database = $mongoClient->mydatabase; ?>
3.1 대칭 암호화
대칭 암호화는 암호화와 복호화에 동일한 키를 사용하는 암호화 방법입니다. 다음은 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); ?>
3.2 해시 암호화
해시 암호화는 데이터를 고유한 해시 값으로 변환하는 단방향 암호화 방법입니다. 다음은 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); ?>
4.1 대칭 복호화
대칭 복호화에는 지정된 키가 필요합니다. 다음은 대칭 복호화를 위한 샘플 코드입니다.
<?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]; ?>
4.2 해시 복호화
해시 암호화는 단방향 암호화 방법이며 복호화를 지원하지 않습니다. 해시되고 암호화된 데이터를 확인해야 하는 경우 데이터베이스에서 제공하는 확인 기능을 사용할 수 있습니다.
<?php $collection = $database->mycollection; $hashedData = $collection->findOne(['_id' => $documentId]); if (password_verify($inputPassword, $hashedData->password)) { // 密码验证成功,执行相应操作 } else { // 密码验证失败,执行相应操作 } ?>
요약하자면, 이 글에서는 MongoDB를 사용하여 데이터 암호화 및 복호화를 구현하는 방법을 소개하고 대칭 암호화 및 해시 암호화에 대한 코드 예제를 제공합니다. 이러한 기술을 적절하게 적용하면 민감한 데이터를 보호하고 시스템 보안을 강화할 수 있습니다. 이 기사가 도움이 되기를 바랍니다!
위 내용은 PHP가 MongoDB를 사용하여 데이터를 암호화하고 해독하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!